mysql中的DDL,DML,DCL语言

数据库原理
1.数据库的特点
2.用表格数据来表示实体与实体之间的联系的模型。叫关系模型
SQL:结构化查询语句
1.不区分大小写
2.每条语句以;结尾

SQL语句分为:
DDL:数据库定义语言,用来创建数据库,创建表格等
DML:数据库管理语言,如增删改查语句等
DCL:数据库操作语言,如修改数据库系统权限


DDL
1.查看数据库
show databases;

2.创建数据库
create database <>;

3.删除数据库
drop database <>;

4.使用数据库
use <>;

5.查看数据库中的表格
show tables;

6.新建表格
create table 表格名称(
字段1 数据类型(长度) 缺省值,
字段2 数据类型(长度) 缺省值,
...
字段n 数据类型(长度) 缺省值
);
数据类型
int:整型
varchar:可变字符串,如果字符串的长度少于定义的长度以实际长度为准
char:字符串,如果字符串的长度少于定义的长度以空格填充
double(float):浮点型
primary key:主键,主键不能重复,且不能为空
不能超过定义数据类型的长度

7.查看表格结构
desc <>;

8.删除表格
drop table <>;

9.修改表格的结构
增加字段
alter table student add classid int(2);

删除字段
alter table student drop classid;

修改字段
alter table student change classid int(3);

DML语句:数据库管理语言(增,删,改,查)
1.增加一条记录
全字段添加
insert into <student> values(111,'zs','男',30,90,1);
指定字段添加
insert into <student>(id,name,age) values(112,'ls','40');

2.修改记录 可以and 和 or
update <student> set sex='女',grade=80,classid=3 where id=112;
update <student> set grade=70 where name='ww' or age=40;

3.删除记录
delete from <student> where id=110;
delete from <student> where grade>=70;
delete from <student> where id=111 and age=20;

4.查询数据
查询所有数据
select * from <student>;

查询年龄大于30的记录 > >= < <=
select * from <student> where age>30;

select * from <student> where age>40 and age<50; //在40到50之间的

select * from <student> where age between 40 and 50;//40到50之间的,包括边界值

select name,age from <student> where classid=1;//查询1班人的名字和名字

select * from <student> where classid=1 and sex='男';//查询1班并且性别为男的

组函数
count(*) 计数
select count(*) 人数 from <student>;//查询学生的数量并取别名。

avg(*)平均数
select avg(grade) avg_grade from <student>;//查询学生成绩的平均值

max(*)最大值

min(*)最小值

模糊查询
%:代表匹配0个或者多个任意字符
_:匹配0个或者1个字符
select * from <student> where name like '%s%';//查询名字中有s字符的记录

select * from <student> where name like '_z%';//查询名字中z前面有0个或者一个任意字符,后面多个任意字符

排序 order by(默认升序)
select * from <student> order by grade;默认升序排序 asc升序 desc降序

分组查询group by
//查询各个班级的平均成绩
select avg(grade) 平均成绩,classid from <student> group by classid;

子句查询
查询成绩小于平均成绩的人
select * from <student> where grade<(select avg(grade) from <student>);

sql不够严谨
1.字符串单引号和双引号都可以使用
2.数字字符串和数字之间可以自动转换
insert into student (id,name) values('234','sde');//不报错
insert into student (id,name) values('234a','sde');//报错

posted @ 2017-02-12 17:40  寻方  阅读(219)  评论(0编辑  收藏  举报