几个英文解释:Sql structed query language
DDL data definition language create drop alter truncate
DML data manipulation languageinsert update delete
DCL data control language grant(授权) revoke(取消授权)
DQL data query languageselect
mysql的数据类型:int
float,doulbe
char(固定长度,不够就补上空格),varchar (可变长度,合法范围内数据多长,长度多长)
date,time,datetime,timestamp(时间戳,会自动设置当前时间为其值)
text,blob(二进制类型文件)
单表约束:primary key
unique
not null
--查看所有数据库show databases;
--查看当前正在使用的是哪个数据库select database();
--创建一个名字为dyq的数据库create database dyq;
--删除名为dyq的数据库drop database dyq;
--显示dyq这个数据库创建的语句,以及编码是什么show create database dyq;
--修改数据库:一般很少修改数据库 , 如果修改,只会修改数据库的编码,这一般也很少修改。alter database dyq character set gbk;
alter database dyq character set utf8;
--创建表格前要指定是哪个数据库,也就是使用哪个数据库use dyq;
--创建一个student表格,有id,name,age,sexcreate table dyq(
id int(10) primary key auto_increment,--主键自动增长
name varchar(20) unique not null,--姓名唯一不为空
age int not null,
sex varchar(2) not null);
CREATE TABLE perple2(
id INT PRIMARY KEY,
username VARCHAR(32) UNIQUE,
age INT(11),
sex VARCHAR(32) NOT NULL,
thistime TIMESTAMP);--带时间戳
--创建表格时不知道要不要添加约束,也可以在创建表格时不添加约束,以后再添加约束,用关键字alter
--添加主键约束alter dyq modify id int primary key;
--添加自动增长约束alter dyq modify id int auto_increment;
--添加唯一性约束alter dyq modify name varchar(20) unique;
--添加非空约束alter dyq modify sex varchar(8) not null;
--修改表格的字符集alter table 表名 character set 字符集
--往表格中添加数据,添加一条完整的数据insert into dyq values(null,'dyq',19,'1');
--往表格中只添加部分数据,不想添加一条完整的数据,前提是未添加的数据可以为空insert into dyq (id,name,age,sex) values (null,'dyq',19,'1');
--修改整个dyq表格的所有年龄都为18update dyq set age=18;
--修改dyq表格中某个数据的值示例update dyq set age=100 where id = 10;
--删除dyq表格中id为2的记录delete from dyq where id=2;
--删除表格,彻底删除什么都不留drop table dyq;
--删除表格,逐行删除,最后留一个空表格delete from dyq;
--先彻底删除表格,然后复制一个空表格,结构和原来的表格一模一样truncate table dyq;
--修改表格的名称rename table dyq to duyuquan;
--使表格增加一列alter table dyq add salary float(32) not null;
--删除表格中的一列alter table dyq drop salary;
--修改表格中某一列的列名alter table dyq change name username varchar(32) unique;
--展现数据库中所有的表show tables;
--展现某个表格创建的语句show create table dyq;
--查看某张表的结构desc dyq;
--常用查询语句结构一般如下select
distinct deptno,count(*),avg(salary)
from dyq
group by deptno having deptno>1 order by deptno limit 1,3;--1代表从第几条记录开始,3代表展示多少条
--利用别名查询,使用的关键字是as.as可以省略的.
--表别名:select * from product as p;
--列别名:select pname as pn from product;
--where后的条件写法:>,=,<=,<>
--逻辑运算符: and or not
--null值判断 : is null, is not null
--模糊查询:like
占位符_代表一个字符,而%代表任意个字符.select * from product where pname like '%新%';
select * from product where pname like '_新_';
--in 在某个范围中获得值select * from product where pid in (2,5,8);
--between 12 and 56
select * from product where pid between 12 and 56;
--分组查询
1.根据cno字段分组,分组后统计商品的个数.select cno,count(*) from product group by cno;
2.根据cno分组,分组统计每组商品的平均价格,并且平均价格> 60;select cno,avg(price) from product group by cno having avg(price)>60;
having 关键字可以让我们筛选成组后的各种数据,可以理解为对分组后的数据进行再次过滤select cno,avg(price) from product group by cno having sum(price)>1500;