数据库基本操作(一)

2021-06-28 20:30发布

DDL数据库操作:

-- 1.创建指定字符集的数据库

CREATE DATABASE db3 CHARSET utf8;


-- 2.展示所有数据库

SHOW DATABASES;


-- 3.切换数据库

USE db2;


-- 4.创建默认字符集数据库

CREATE DATABASE db4;


-- 5.修改数据库的字符集

ALTER DATABASE db4 CHARSET gbk;


-- 6.查看数据库的建库信息

SHOW CREATE DATABASE db4;


-- 7.删除数据库

DROP DATABASE db2;

DROP DATABASE db3;

DROP DATABASE db4;


DDL表操作

-- 1.创建student表

CREATE TABLE student(

ename VARCHAR(10),

id INT,

age INT

);


-- 2.查看表结构

DESC student;


-- 3.修改表名

ALTER TABLE student RENAME people;


-- 4.添加一列

ALTER TABLE people ADD aa INT; -- 默认在最后添加

ALTER TABLE people ADD bb INT FIRST; -- 在最前面添加

ALTER TABLE people ADD cc INT AFTER id; -- 在某一字段后面添加


-- 5.修改一列

ALTER TABLE people CHANGE cc dd INT;


-- 6.删除一列

ALTER TABLE people DROP dd;


-- 7.删除表

DROP TABLE people;



DML数据操作语言

-- 创建student表

CREATE TABLE student(

ename VARCHAR(20),

id INT,

age INT

);


-- 1.添加指定字段

INSERT INTO student(id) VALUES(2);


-- 2.添加的简写格式

INSERT INTO student VALUES('刘贵龙',1,18);


-- 3.添加多条数据

INSERT INTO student VALUES('张三',2,17),

('李四',2,17),

('王五',2,17),

('赵六',2,17);


-- 4.带条件更新

UPDATE student SET ename = '刘二狗子' WHERE age = 90; -- 不带条件更新会更新表中所有值,条件不满足不跟新


-- 5.带条件删除

DELETE FROM student WHERE ename = '张三'; -- 条件不满足则不会删除


-- 6.清空表的操作

DELETE FROM student; -- delete后面可以加where,truncate不可以

-- delete是将数据一条一条销毁,而truncate则是直接毁表

TRUNCATE TABLE student;


mysql数据类型

-- 创建表t1

CREATE TABLE t2(

id INT,

money DOUBLE,

tname VARCHAR(10),

date1 DATE,

date2 TIME,

date3 DATETIME,

date4 TIMESTAMP

);


-- 添加一条完整数据

INSERT INTO t2 VALUES(1,2000.08,'李四','2021-6-28','15:44:13',

'2021-6-28 15:44:13','2021-6-28 15:44:13');


-- date1默认值null date2默认值null date3默认值是null date4默认值是当前系统时间

-- 测试date1和date2

INSERT INTO t2(date1,date2) VALUES('2021-6-2 15:44:13','2021-6-28 15:44:13');


-- 测试date3和date4

INSERT INTO t2(date3,date4) VALUES('8888-12-12 12:12:12','8888-12-12 12:12:12');



SQL约束

CREATE TABLE t3(

id INT PRIMARY KEY AUTO_INCREMENT,

ename VARCHAR(10)

);

INSERT INTO t3 VALUES(1,'zhangsan');

INSERT INTO t3 VALUES(1,'lisi');-- 报错


INSERT INTO t3 VALUES(NULL,'wanwu'); -- 每次在最大值自增1


INSERT INTO t3(ename) VALUES('zhaoliu');


INSERT INTO t3 VALUES(5,'zhouba');

DELETE FROM t3 WHERE id = 5;

INSERT INTO t3 VALUES(NULL,'wujiu'); -- 已经出现过的主键不会再出现



DQL数据查询语言

CREATE TABLE emp2(

EMPNO INT,

ENAME VARCHAR(10),

JOB VARCHAR(10),

MGR INT,

HIREDATE DATE,

SAL DOUBLE,

COMM DOUBLE,

DEPTNO INT

);


-- 向员工表中添加十条数据

INSERT INTO emp2 VALUES(1,'刘一','java开发',9,'2021-6-28',1600,200,101),

(2,'陈二','java开发',9,'2021-6-28',1600,200,101),

(3,'张三','java开发',9,'2021-6-28',1600,200,101),

(4,'李四','前端开发',9,'2021-6-28',1500,200,101),

(5,'王五','前端开发',9,'2021-6-28',1500,200,101),

(6,'赵六','前端开发',9,'2021-6-28',1500,200,101),

(7,'孙七','董事长',7,'2021-6-28',16000,200,103),

(8,'周八','总经理',7,'2021-6-28',6000,200,104),

(9,'吴九','部门经理',8,'2021-6-28',3000,200,101),

(10,'郑十','java开发',9,'2021-6-28',1600,200,101);


-- 1.查询表中所有数据

SELECT *FROM emp2;


-- 2.查询指定列

SELECT ename 姓名 FROM emp2;

SELECT ename 姓名,job 工作岗位 FROM emp2; 


-- 3.条件查询

SELECT *FROM emp2 WHERE ename = '张三';


-- 4.查询工资是1500且叫李四的人

SELECT *FROM emp2 WHERE sal = 1500 AND ename = '李四';


-- 5.查询工资是1600或者1500的人

SELECT *FROM emp2 WHERE sal = 1500 OR sal = 1600;