第一章: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