DATE---日期类型,显示‘YYYY-MM-DD’
DATETIME--日期和时间的组合,显示‘YYYY-MM-DD HH:MM:SS' TEXT/BLOB 文本和大对象
TEXT可以保存字符串的长度在255-65535字节内。BLOB是一个能保存二进制数据的大对象,区别是TEXT不区分大小写,而BLOB区分大小写。 SQL语句的导入
1、编写SQL脚本(.sql)
2、导入mysql-uusername -p < ***.sql &练习:
&老师表:teacher &姓名,性别,年龄,课程
导出sql脚本---mysqldump stu -uroot -p>abc.sql 查看表的结构------desc tablename
修改表中的数据---update tablename set colname=value where条件
删除数据-----delete from teacher where age=? 删除表中所有数据---delete from teacher; 删除表---drop table tablename
根据条件进行过滤查找---select *from tablename where 条件 查找出版社为“清华出版社”的所有书籍---select *from books where pub=‘清华出版社’;
查找出库存大于50的所有书籍---select *from books where store>50;
查找出“西游记”的库存量---select title,store from books where title=‘西游记’; SQL运算符
>大于 <小于 >=大于等于 <=小于等于 !=,<>不等于 查看数据库的信息----\\s ------------------- mysql常用函数 -------------------
1、查看数据库版本---select versin(); 计算机的时间是存在BIOS()
2、查看当前数据库的日期----select current_date(); 3、查看当前数据库时间----select now();
4、查看当前连接数据库的用户---select user();localhost:代表是本机
create table user(id int,name varchar(20),bir date,dea datetime);
insert into user values(1,'zhangsan',now(),now()); or和and查询 or(满足一个条件) and(都需要满足)
查找学生EQ为80分或90分的学生
select * from stu where EQ=80 or EQ=90; 查找学生EQ为90分并且性别为女的学生 select * from stu where EQ=90 and sex='女'; in(x,x)返回条件中的记录与or作用相似 select * from tablename where 条件 in(,); between‘’ and‘’返回两者之间的记录
查询年龄在20-30之间的所有学生
select * from stu where age between 20 and 30; like与通配符(%)一起使用,模糊查询 查找出姓张的学生
select * from stu where name like ‘张%’; 查询出使用163邮箱的所有学生
select * from stu where email like ‘3.com’; 查询出邮箱里面含有a的所有学生
select * from stu where email like ‘%a%’; order by 实现排序(从小到大)--asc 将学生的年龄从高到低排列
select * from stu order by age desc;(降序) 将学生的年龄从低到高排列
select * from stu order by age asc;(升序) 数据默认为升序(从低到高) select * from stu order by age ; as为查询的列起别名
1、查询所有学生只列出姓名,年龄,性别
select name as '姓名',age as '年龄',sex as '性别' from stu; group by对于查询出的数据结果进行分类(分组) 2、将学生按性别进行分类
select * from stu group by sex; 将学生按年龄进行分类
select * from stu group by age;
3、having 子查询:对于where查询出的结果再次进行查询 查找出年龄大于20岁学生,并且在其中找出姓名等于xxx的学生 select * from stu where age >20 having name='xxx'或 select * from stu where age>20 and name='xxx' 4、distinct 过滤查询的重复型记录,只显示唯一的记录 将学生性别过滤
select distinct(sex) from stu; count 查看表中有几条数据 select count(*) from stu;
select count(distinct(sex)) from stu;
limit 限制查询结果的输出数量 同时也可以实现数据的分页 查询EQ前三名的学生
select * from stu order by EQ desc limit 3; 实现查询记录的分页
select * from stu limit 0,3; select * from stu limit 3,3;
约束----定义了表级的强制规则、数据的完整性
非空约束(not null) create table test(id int not null); insert into test values();
innodb 会报错 ,myISAM 会整形默认以0填充 唯一约束(UNIQUE) 不允许列中的数据重复 create table test(id int,unique(id)); insert into test values(1);
默认约束(default) create table test(id int not null default'111111'); insert into test values();
主键约束(primary key)是一个字段或一组字段(组合键),用于唯一标识表中的记录,它可以 确保每个记录是唯一的。 create table test(id int,primary key(id)); insert into test valuse(1); id主键自增,减
create table test (id int,name varchar(20),primary key(id));
insert into test values(1,'张安');
auto_increment的特点-------自增值 当删除某一值时,他不会自动填充,而是继续自增1
create table test(id int not null auto_increment,name varchar(20),primary key(id));
insert into test(name)values('xxx'); 创建一个有合理约束的表
create table people(id int not null auto_increment,name
varchar(20) not null,age int not null,sex char(2) not null,pcode varchar(50),tel varchar(50),email varchar(50),primary key(id)); insert into people(name,age,sex,email) values('张三',‘28’,‘男’,'abc@163.com'); 查询出所有学生的档案信息
select * from student,school where student.daih=school.id;或
select * from student as a,school as b where a.daih=b.id; 查询所有学生档案信息 只需显示:学生姓名,年龄。毕业学校,学校地址
select student.name,student.age,school.name,school.addres s from student, school where student.daih=school.id;或