SQL语言分为五部分:
1.数据查询语言(Data Query Language,DQL):DQL主要用于数据的查询,其基本结构是使用SELECT子句,FROM子句和WHERE子句的组合来查询一条或多条数据
2.数据操作语言(Data Manipulation Language,DML):DML主要用于对数据库中的数据进行增加,修改和删除的操作,其主要包括:
1) INSERT:增加数据
2)UPDATE:修改数据
3)DELETE:删除数据
2.数据定义语言(Data Definition Language,DDL):DDL主要用针对数据库对象(数据库,表,索引,视图,触发器,存储过程,函数)进行创建,修改和删除操作,其主要包括:
1)CREATE:创建数据库对象
2)ALTER:修改数据库对象
3)DROP:删除数据库对象
3.数据库控制语言(Data Control Language,DCL):DCL用来授予或回收访问数据库的权限,其主要包括:
1)GRANT:授予用户某种权限
2)REMOVE:回收授予的某种权限
4.事务控制语言(Transaction Control Language,TCL):TCL用于数据库的事务管理,其主要包括:
1)START TRANSACTION:开启事务
2)COMMIT:提交事务
3)ROLLBACK:回滚事务
4)SET TRANSACTION:设置事务的属性
DQL_DML创建数据库表
- 建立一张用来存储学生信息的表
- 字段包含学号,姓名,性别,年龄,入学日期,班级,email等信息
- 学号是主键 = 不能为空 + 唯一
- 姓名不能为空
- 性别默认是男
- Email唯一
USE student
--创建数据库表
CREATE TABLE t_student(
sno INT(6),
sname VARCHAR(5),
sex CHAR(1),
age INT(3),
enterdate DATE,
classname VARCHAR(10),
email VARCHAR(15)
);
--查看表的结构:展示表的字段详细信息
DESC t_student;
--查看表中数据
SELECT * FROM t_student;
--查看建表语句:
SHOW CREATE TABLE t_student;
DML添加数据
1.int 宽度是显示宽度,如果超过,可以自动增大宽度 int底层都是4个字节
2.时间的方式多样'1256-12-23' "1256/12/23" "1256.12.23"
3.字符串不区分单引号和双引号
4.如何写入当前的时间now() , sysdate() , current_date()
5.char varchar是字符的个数,不是字节的个数,可以使用binary,varbinary表示定长和不定长个数
6.如果不是全字段插入数据的话,需要加入字段的名字
--添加数据--
INSERT INTO t_student VALUES(1,'张三','男',18,'2022-4-5','JavaEE','123@126.com');
INSERT INTO t_student VALUES(2,'李四','男',18,'2022-4-5','JavaEE','123@126.com');
INSERT INTO t_student VALUES(3,'王五','男',18,'2022.4.5','JavaEE','123@126.com');
INSERT INTO t_student VALUES(4,'赵六','男',18,NOW(),'JavaEE','123@126.com');
INSERT INTO t_student (sno,sname,enterdate) VALUES(5,'李白','2022-4-5');
修改和删除表数据
1.关键字,表名,字段名不区分大小写
2.默认情况下,内容不区分大小写
3.删除操作from关键字不可缺少
4.修改,删除数据别忘记加限制条件
--修改表中数据
UPDATE t_student SET sex = '女';
UPDATE t_student SET sex = '男' WHERE sno = 2;
UPDATE t_student SET classname = '软件工程' WHERE sno = 3;
--删除操作
DELETE FROM t_student WHERE sno = 2;
DDL修改,删除数据库表
-- 修改表的结构
-- 增加一列
ALTER TABLE t_student ADD score DOUBLE(5,2); --5:总位数 2:小数位数
UPDATE t_student SET score = 123.50 WHERE sno =1;
-- 删除一列
ALTER TABLE t_student DROP score;
-- 增加一列(放在最前面)
ALTER TABLE t_student ADD score DOUBLE(5,2) FIRST;
-- 增加一列(放在sex列的后面)
ALTER TABLE t_student ADD score DOUBLE(5,2) AFTER sex;
-- 修改一列
ALTER TABLE t_student MODIFY score FLOAT(4,1); -- modify 修改是列的类型的定义,但是不会改变列的名字
ALTER TABLE t_student CHANGE score score1 DOUBLE(5,2); -- change 修改列名和列的类型的定义
-- 删除表:
DROP TABLE t_student;