重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、使用show语句找出在服务器上当前存在什么数据库:
创新互联是一家集网站建设,博兴企业网站建设,博兴品牌网站建设,网站定制,博兴网站建设报价,网络营销,网络优化,博兴网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
mysql
show
databases;
+----------+
|
database
|
+----------+
|
mysql
|
|
test
|
+----------+
3
rows
in
set
(0.00
sec)
2、创建一个数据库abccs
mysql
create
database
abccs;
注意不同操作系统对大小写的敏感。
3、选择你所创建的数据库
mysql
use
abccs
database
changed
此时你已经进入你刚才所建立的数据库abccs.
4、
创建一个数据库表
首先看现在你的数据库中存在什么表:
mysql
show
tables;
empty
set
(0.00
sec)
说明刚才建立的数据库中还没有数据库表。下面来创建一个数据库表mytable:
我们要建立一个你公司员工的生日表,表的内容包含员工姓名、性别、出生日期、出生城市。
mysql
create
table
mytable
(name
varchar(20),
sex
char(1),
-
birth
date,
birthaddr
varchar(20));
query
ok,
rows
affected
(0.00
sec)
由于name、birthadd的列值是变化的,因此选择varchar,其长度不一定是20。可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用alter
table语句。);性别只需一个字符就可以表示:"m"或"f",因此选用char(1);birth列则使用date数据类型。
创建了一个表后,我们可以看看刚才做的结果,用show
tables显示数据库中有哪些表:
mysql
show
tables;
+---------------------+
|
tables
in
menagerie
|
+---------------------+
|
mytables
|
+---------------------+
5、显示表的结构:
mysql
describe
mytable;
+-------------+-------------+------+-----+---------+-------+
|
field
|
type
|
null
|
key
|
default
|
extra
|
+-------------+-------------+------+-----+---------+-------+
|
name
|
varchar(20)
|
yes
|
|
null
|
|
|
sex
|
char(1)
|
yes
|
|
null
|
|
|
birth
|
date
|
yes
|
|
null
|
|
|
deathaddr
|
varchar(20)
|
yes
|
|
null
|
|
+-------------+-------------+------+-----+---------+-------+
4
rows
in
set
(0.00
sec)
6、
往表中加入记录
我们先用select命令来查看表中的数据:
mysql
select
*
from
mytable;
empty
set
(0.00
sec)
这说明刚才创建的表还没有记录。
加入一条新记录:
mysql
insert
into
mytable
-
values
(′abccs′,′f′,′1977-07-07′,′china′);
query
ok,
1
row
affected
(0.05
sec)
再用上面的select命令看看发生了什么变化。我们可以按此方法一条一条地将所有员工的记录加入到表中。
角色一个表,用户一个表,在建一个表3个字段id,角色表id,用户表id,
用户去选择什么样的角色,,后台做一个创建角色的功能,更用户来匹配
创建用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如下示例:
GRANT ALL PRIVILEGES ON *.* TO 'user2'@'%' IDENTIFIED BY '123456'
然后刷新下权限
flush privilege
mysql更新表中数据的存储过程,代码如下:
mysql CREATE TABLE Employee( //创建表
- id int,
- first_name VARCHAR(15),
- last_name VARCHAR(15),
- start_date DATE,
- end_date DATE,
- salary FLOAT(8,2),
- city VARCHAR(10),
- description VARCHAR(15)
- );
Query OK, 0 rows affected (0.01 sec)
--//导入数据
mysql insert into Employee(id,first_name, last_name, start_date, end_Date, salary, City, Description)
- values (1,'Jason', 'Martin', '19960725', '20060725', 1234.56, 'Toronto', 'Programmer');
Query OK, 1 row affected (0.00 sec)
第一步:新建数据库
连接的是本地localhost,新建一个新的数据库名是jdbctest
然后建表t_emp
不会的话可通过执行下方的sql语句建表
CREATE TABLE `t_emp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`salary` double DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
第二步:新建java项目
新建完以后添加mysql驱动的jar包,jar包自己下载
在项目上右键鼠标属性,然后
添加jar包,我这里已经加载过了
第三步:编写代码
package com.gf;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
public class Test {
public static void main(String[] args) throws Exception {
int flag=0;
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
Connection conn=(Connection) DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbctest?user=rootpassword=123456useUnicode=truecharacterEncoding=UTF-8");
//3.创建statement
Statement sm=(Statement) conn.createStatement();
//4.执行sql语句
flag=sm.executeUpdate("insert into t_emp(name,salary) values('菲菲',34.9)");
if(flag!=0) {
System.out.println("员工信息增加成功");
}else {
System.out.println("添加失败");
}
}
}
注意点:
---------------------------------------------------------------------------------
DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/jdbctest?user=rootpassword=123456useUnicode=truecharacterEncoding=UTF-8");
这里需要修改自己本机的连接信息,不然会出现连接失败
最后的执行结果
请问你用的是什么数据库啊?不同的数据库之间SQL语句的写法是有一些微小的差别的。 我现在以oracle数据库为例回答你的问题: 创建表employee: create table employee ( e_id number(3) primary key, e_name varchar2(20), e_date date, e_sex varchar2(2), d_id varchar2(2) ) 因为你要求工号是自动增长的,那么在oracle中就要使用序列,这是oracle特有的东西, (其他数据库,如mysql是在创建表时使用auto_increment)。 创建序列: create sequence seq_emp; 1.增加一条如下记录:张三,2008-1-2参工(上班),分配到01部门,工号使用自动编号,SQL语句为: (你并没有说明将性别列(e_sex)插入数据) insert into employee (e_id,e_name,e_date,d_id) values (seq_emp.nextval,'张三',to_date('2008-1-2','yyyy-mm-dd'),'01'); 2.查询所有员工的姓名、工号和参工日: select e_name,e_id,e_date from employee; 补充问题: 1.写出查询所有员工的姓名、工号和参工日期的SQL语句为: select e_name,e_id,e_date from employee; 2.删除上面员工表e中所有数据有两种方法:?和? 。另外:删除员工表employee对象语句为: 方法1: 使用truncate语句可以将表截断,这将删除表中所有的行,并重置表的存储空间, truncate table employee; 方法2: 使用delete语句,不写where子句: delete from employee; 删除员工表employee对象语句为: drop table employee; 3.将所有没有性别的人员性别更新为“男”的SQL语句为: (对于null值的判断使用 is null 或者 is not null) update employee set e_sex = '男' where e_sex is null; 4.查询所有在2008年参工的男员工,或者性别没有输入的员工记录: SELECT * FROM employee WHERE TO_CHAR(e_date,'yyyy') = '2008' AND e_sex = '男' OR e_sex IS NULL; 5.查询所有在2006-2008年参工的,姓“王”的员工: SELECT e_name FROM employee WHERE TO_CHAR(e_date,'YYYY') IN (2006,2007,2008) AND e_name LIKE '王%';