什么是SQL?
结构化查询语句Structured Query Language,定义了所有关系型数据库操作的规则,每个数据库存在不同的地方,称为“方言”。
SQL分类
- DDL数据定义语言:定义数据库对象,如数据库、表、列等。关键字create database,alter database,create table.alter table,drop table,create index(创建索引),drop index
- DML数据操作语言:对数据库的表的数据进行增删改。关键字select、update、delete、insert into
- DQL数据查询语言:查询表中的记录(数据)
- DCL数据控制语言:定义数据库权限和安全级别以及创建用户。
DDL定义数据库对象
--操作数据库
--创建db4数据库,判断是否存在,并制定字符集为gbk
create database if not exists db4 character set gbk;
--查询创建的所有数据库
show databases;
--查询某个数据库的字符集
show create database db4;
--修改数据库的字符集
alter database db4 character set gdk;
--判断数据库存在,删除数据库
drop database if exist db4;
--查询正在使用的数据库
select database
--使用数据库
use db4;
数据库类型
- int:整数类型,age int,
- double:小数类型,score double(5,2)
- date:日期,只包含年月日,yyyy-MM-dd
- datetime:日期,包含年月日时分秒 yyyy-MM-dd HH:mm:ss
- timestamp:时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值
- varchar:字符串 name varchar(20):姓名最大20个字符,例如zhangsan 8个字符 ,张三 2个字符
--操作表
--创建student表
create table student(
id int,
name varchar(20),
age int,
score double(4,1),
birther date,
insert_time timestamp
);
--复制表
create table student1 like student;
--查询所有表
show tables;
--修改表名,字符集
alter table student rename to student2 character set gdk;
--添加一列
alter table student add hoddy character(20);
--修改列
alter table student chaage name s_name;
--修改数据类型
alter table student modify 列名 新数据类型
--删除表
drop table if exists student1;
DML增删改
--添加数据,若没有列名,默认添加全部数据
insert into student(id,name,age,score) values(1,'zhangsan',18,90);
--删除所有数据
delete from student;--不推荐
truncate table student;
--修改某行的某些数据
update student set name='lisi',age=18 where id=1;
DQL查询
--条件查询
--查询年龄大于等于20小于等于30
select * from student where age>=20 && age<=30;
--查询成绩为null,注意null值不能用=和!=判断
select * from student where english is null;
--占位符: _单个任意字符 %多个任意字符
--查询姓马的
select * from student where name like '马%‘;
--查询第二个字是蓝的
select * from student where name like '_蓝%';
--查询名字包括蓝的
select * from student where name like '%蓝%';