第一章:DDL和DML语言
1.DDL:
DDL:DDL是一种数据定义数据结构和批改的语言,也就是说查问表构造,他的全称为Data Definition Language
2.DDL-数据库操作
1.DDL查问
-- 查问所有数据库SHOW DATABASES -- 查问以后数据库的所有表SHOW DATABASES 数据库名-- 例:SHOW DATABASES jzlg
2 .DDL创立
-- 创立数据库CREATE DATABASE 数据库-- 例:CREATE DATABASE KJZZ
3.DDL删除
删除数据库DAOP DATA 数据库名;-- 例DAOP DATA hhhh;
4.DDL 应用数据库
-- 应用之前创立的数据库use 数据库
3.DDL-表操作-查问(查问表构造)
1.DDL查问
-- 查问以后数据库的表SHOW TABLES;-- 例:show tables jzlg
2..DDL查问表构造
-- 查问表构造DESC 表名-- 例DESC user
3.查问指定表的建表语句
-- 查问指定表的建表语句SHOW CREATE TABLE 表名-- 例SHOW CREATE TABLE user
4.DDL-表操作- 创立
1.DDL表创立
CREATE TABLE 表名(子段1 数据类型(COMMENT 字段1 正文),字段2 数据类型(COMMENT 字段2 正文),字段3 数据类型(COMMENT 字段3 正文)字段4 数据类型(COMMENT 字段4 正文)....)(COMMENT 表正文)-- 例CREATE TABLE user(id int(COMMENT 用户id),name varchar(10)(COMMENT 用户名字),gender varchar(10)(COMMENT 用户性别)avg data(COMMENT 年龄)....)(COMMENT 用户表)
5.DDL-表操作-批改
1.DDL增加字段
-- 增加字段ALTER TABLE 表名 字段名 数据类型(长度) comment 正文 -- 案例 为user表增加一个新的昵称为nickname和数据类型为varchar(20)ALTER TABLE USER nickname varchar(20)
2.DDL批改字段
-- 批改数据类型ALTER TABLE 表名 字段名 新数据类型(长度) comment 正文-- 例:ALTER TABLE user nickname char(10) -- 批改字段名和字段类型ALTER TABLE 表名 CHANGE 旧字段名 新字段名 类型(长度) comment 正文-- 例ALTER TABLE user CHANGE nickname name varchar(20)
3.DDL删除字段
-- 删除字段ALTER TABLE 表名 DROP 字段名-- 例ALTER TABLE user DROP name
4.DDL批改表名
-- 批改表名ALTER TABLE 表名 RENAME TO 新表名-- 例ALTER TABLE user RENAME TO user1
5.DDL删除表
-- 删除表DROP TABLE [IF EXISTS] 表名例DRIP TABLE [IF EXISTS] user-- 删除指定表, 并从新创立表 TRUNCATE TABLE user`
2.DML:
DML:是用来对数据库中的表中的数据进行增删改查的,全称是“Data Manipulation Language"
1.DML-数据操作
1增加数据
-- 给指定字段增加数据INSERT INTO 表名(字段名1,字段名2,...) VALUES(值1,值2);-- 例insert into user(id,name) VALUES(1,'陈礼浩')-- 给全副字段增加数据insert into 表名 values(值1,值2)-- 例insert into user(2,'陈礼浩')-- 批量增加数据insert into 表名 (字段1,字段2) values(值1,值2), (值1,值2)-- 例insert into user values(3,'哈哈哈') (4,'牛牛牛')insert into 表名 values(值1,值2), (值1,值2)-- 例insert into user values(5,'qqq') (6,'666') 留神:1.插入数据时,指定的字段要和值一一对应 2.字符串和日期数据应该蕴含在引号中 3.插入的数据大小,应该在字段的规定的范畴中 4.插入多条数据要用逗号分隔
2批改数据
-- 批改数据UPDATE 表名 SET 字段1=值1,wher (条件)-- 例1:批改id为1的数据,将name改为666UPDATE user SET name=666 where id=1-- 例2: 批改id为1的数据,将name的值批改为哈哈哈,gender批改为女UPDATE user set name=哈哈哈,gender=女 where id=1-- 例3: 将所有的员工的入职日期都改为2008-1-1UPDATE user set entrydate=2008-1-1-- 因为他的说是将所有的员工改,所以没有条件
3删除数据
-- 删除数据DELETE from 表名 where 条件-- 例 将id为1的数据删除DELETE from user where id=1-- 删除某一字段的值UPDATE user set name=null留神:1.DELETE 语句的条件能够有,也能够没有,如果没有条件,则整张表的数据都会被删除2.DELETE 语句不能删除某一字段的值(能够应用 update)
第二章:DQL和DCL语言
1.DQL
1.1DQL介绍:
DQL是数据查询语言,用于查询数据库中的数据,全称是:Data QueryLanguage
1.2DQL的语法:
select 字段名 from where 条件 GROUP BY 分组字段 HAVING 分组后条件 ORDER BY 排序字段 LIKE 分页参数
1.3根底查问
-- 1.查问整个表的字段select * from 表名-- 例select * from user-- 2.查问多个字段select 字段1,字段2 from 表名-- 例select id,name from user-- 3.设置别名select 字段1 AS 别名,字段2 AS 别名 from 表名-- 例select id as a,name AS b from user-- 4.去出重复记录select 字段 from 表名-- 例select DISTINCT name from user
1.3.1练习
-- 1查问指定字段name,workno,ageselect name,workno,age from emp-- 2查问所有字段select * from emp-- 3查问所有员工的工作地址,起别名select workaddress as '工作地址' from emp-- 4查问公司员工的下班的地址select DISTINCT workaddress from emp
1.4条件查问
-- 1.条件查问的语法select 字段 from 表名 where 条件-- 2条件比拟运算符 性能> 大于>= 大于或等于< 小于<= 小于或者等于= 等于<> 或!= 不等于BETWEEN ...AND... 在多少到多少之间IN(...) 在in括号外面的多个值,多者选一LIKE 占位符 含糊查问(_代替一个字符,%代替多个字符)IS NULL 是null逻辑运算符 性能and 或 && 并且or或|| 或者not或! 非,不是
1.4.1练习
-- 1.查问年龄等于88的员工select * from emp where age=88-- 2查问年龄小于22的员工信息select * from emp where agee < 22-- 3查问年龄小于或等于20的员工信息select * from emp where age <=20-- 4 查问没有身份证号的员工信息select * from emp where idcard is null-- 5查问有身份证号的员工信息select * from emp where idcard is not null-- 6 查问年龄不等于88的员工select * from emp where age != 88-- 7查问年龄在15岁(蕴含)到20岁(蕴含)之间的员工信息select * from emp where age in (15,20)select * from emp between age 15 and 20-- 8查问性别为女且年龄小于25岁的员工信息select * from emp where avg=女 and age<25-- 9查问年龄等于18或20或40的员工select * from emp where age=18 or 20 or 40select * from emp where age in (18,20,40)-- 10查问姓名为两个字段的员工select * from emp where name like'__'-- 11查问身份证号最初一位是x的员工信息select * from emp where idcard like '%x'
1.5聚合函数
-- 1聚合函数介绍:将一例数据看做为整体,进行计算-- 2函数分类max()求最大的值min()求最小的值avg()求平均值sun()求总合count()求个数-- 3语法select 聚合函数(字段名) from 表名
1.5.1练习
-- 1 统计该企业的员工数量select count(workaddress) from emp-- 2统计该企业员工的年龄的平均年龄select sun(age) from emp-- 3 统计该企业员工的最大年龄select max(age) from emp-- 4 统计该企业员工的最小年龄select min(age) from emp-- 5 统计西安地区员工的年龄的和select sun() from where name='西安'留神:所有的null值不参加聚合函数计算
1.6分组查问
-- 1.语法select * from 表名 where 条件 GROUP BY 分组字段名 having 分组条件-- 例select * from emp where id=1 group by id having id=1-- -- 留神:分组之后,查问的字段为聚合函数和分组字段,查问其余字段无任何意义
1.6.1练习
-- 查问男同学和女同学各自的数学平均分select avg(math) from su group by sex-- 查问男同学和女同学各自的数学平均分,以及各自人数select avg(math) ,count(sex) from sc group by sex-- 查问男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参加分组select avg(math), count(sex) from sc where math <70 group by sex -- 查问男同学和女同学各自的数学平均分,以及各自人数,要求:分数低于70分的不参加分组,分组之后人数大于2个的select avg(math), count(sex) from sc where math <70 group by sex having count()
1.7分页查问
-- 1.语法select * from 表名 limit 起是索引,查问的页数-- 例select * from sc limit 0,0-- 2怎么求索引呢?起始索引 = (以后页码 - 1) * 每页显示的条数
1.7.1练习
-- 从0开始查问,查问3条数据select * from sc limit 0,3-- 每页显示3条数据,查问第一页数据select * from sc limit 0,3-- 每页显示3条数据,查问第二页数据select * from sc limit 3,3-- 每页显示3条数据,查问第三页数据select * from sc limit 6,3