SQL语言和MySQL数据库(二)

SQL语法详解 1
1.DDL操作数据库(CRUD)

(create)创建数据库:

create database 数据库名称 ;

-- 创建数据库判断是否存在
create database if not exists 数据库名称 ;

-- 创建数据库并指定字符集
create database 数据库名称 character set gbk;

(retrieve)查询:

-- 查询所有数据库名称
show databases;

-- 查询数据库创建语句
show create database 数据库名称 ;

(update)修改:

-- 修改数据库的字符集
alter database 数据库名称 character set 字符集名称;

(delete)删除:

-- 删除数据库
drop database 数据库名称 ;

-- 判断数据库是否存在,再删除
drop database if exists 数据库名称;

使用数据库:

-- 查询当前正在使用的数据库
select database() ;

-- 使用数据库
use 数据库名称;
2.语法详解----DDL操作表(CRUD)

(create)创建表:

create table student(
	id int,
	name varchar(32),
	age int,
	score double(4,1),
	birthday date,
	insert_time timestamp not null
);

数据类型:
double:小数类型 score double(4,1)指定小数的位数
varchar:字符串类型 name varchar(20) 最长20个字符
date:日期 年月日
datetime:年月日时分秒
timestamp:时间戳 如果该字段没有赋值或者为null,则使用系统时间自动赋值
复制表:

create table 新表 like 原表;

(retrieve)查询表:

-- 查询所有数据库中表名称
show tables;
-- 查询表结构
desc表名称 ;

(update)修改:

-- 修改表的字符集
alter table 表名称 character set 字符集名称;

-- 修改表的名称 类型
alter table 表名称 rename 新表名称;

-- 添加列
alter table 表名称 add 列名称 数据类型;

-- 修改列名称 数据类型
alter table 表名称 change 列名 新列名 数据类型;

-- 修改列的类型
alter table 表名称 modify 列名 数据类型;

-- 删除列)
alter table 表名称 drop 列名;

(delete)删除:

- 删除表
drop table 表名称 ;

--判断表是否存在,再删除
drop table if exists 表名称;
3.语法详解----DML 操作(增删改)数据

添加数据:

insert into 表名(1,列2...列n) values(1,2, ... 值n);

删除数据:

delete from 表名称 [where 条件];

注意:truncate table 表名;先删除表,再创建一张一样的空表;(效率较高,推荐使用)
修改数据:

update 表名 set 列名1=1,列名2=2 . . .列名n=值n [where 条件 ];

如果不加条件则更改所有的记录。

4.语法详解----DQL 操作 查询数据

(1)基础语法:
select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组后条件 order by 排序 limit 分组限定;
(2)基础查询

-- 多个字段查询:
select 字段名1,字段名2 from 表名;

-- 去除重复(distinct)
select distinct 字段名1,字段名2 from 表名;

-- 计算列的值(一般只进行数值计算)
SELECT NAME,math,english,math+english AS 总分 FROM student;

如果有null参与运算,计算结果为null (English值为null)
ifnull(表达式1,表达式2)
表达式1:那个字段需要判断是否为null
表达式2:null的替换值

SELECT NAME,math,english,math+IFNULL(english,0) AS 总分 FROM student;

起别名:AS 也可以省略;
(3)条件查询
where子句后跟条件
运算符 >、<、<= 、>= 、= 、<>(不等于 !=) 、between . . . and 、
in(集合) 、and && 、or |、not ! 、is null
SQL语句:

-- eg:年龄大于20
SELECT * FROM student WHERE age>25;
SELECT * FROM student WHERE age<>25;
SELECT * FROM student WHERE age!=25;

-- eg:年龄在25 到30之间
SELECT * FROM student WHERE age>=25 AND age<=30;
SELECT * FROM student WHERE age>=25 && age<=30;
SELECT * FROM student WHERE age BETWEEN 20 AND 30;
SELECT * FROM student WHERE  age=25 OR age=27;
SELECT * FROM student WHERE age IN(22,25,32);

-- eg:查询英语成绩为null
SELECT * FROM student WHERE english=NULL; -- 错误null不能使用 =  !=
SELECT * FROM student WHERE english IS NULL;

-- eg: 查询英语成绩不为null
SELECT * FROM student WHERE english IS NOT NULL;

模糊查询:
like 占位符_:单个任意字符 占位符%:任意字符
SQL语句:

SELECT * FROM student WHERE NAME LIKE '刘%';
SELECT * FROM student WHERE NAME LIKE '_云%';
SELECT * FROM student WHERE NAME LIKE '___';
关于排序查询和分组、分页查询请查看下一篇博客 SQL语言和MySQL数据库(三)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值