Database02-SQL语句

1.SQL语句分类

1:数据定义语言:简称DDL(Data Definition Language),用来定义数据库对象:数据库,表,列等。关键字:create,alter,drop等。 
2:数据操作语言:简称DML(Data Manipulation Language),用来对数据库中表的记录进行更新。关键字:insert,delete,update等。
3:数据控制语言:简称DCL(Data Control Language),用来定义数据库的访问权限和安全级别,及创建用户。
4:数据查询语言:简称DQL(Data Query Language),用来查询数据库中表的记录。关键字:select,from,where等。

2.SQL数据类型

类型描述
int整形
double浮点型
varchar(M)可变长字符串,M为0~65535之间的整数
data日期类型,没有时分秒
datatime日期类型,有时分秒
time日期类型,没有年月日
char(M)字符类型,长度不可变,M为0~255之间的整数
VARBINARY(M)允许长度0~M个字节的变长字节字符串
BINARY(M)允许长度0~M个字节的定长字节字符串

3.数据库的操作

1:创建,create database mydatabase(数据库名)[character set 字符集];
2:查看,show databases(查看所有); show create database 数据库名(查看某个数据库的定义信息);
3:删除,drop database 数据库名。
4:use 数据库名;切换数据库。
5:select database();查看正在使用的数据库。

4.表的操作

1:创建,create table 表名 (
			字段1 数据类型 约束,
			字段2 数据类型 约束,
			字段3 数据类型 约束
		);
//约束,主键约束(唯一、非空),非空约束,唯一约束,外键约束。
CREATE TABLE users(
	uid INT PRIMARY KEY AUTO_INCREMENT, # 主键约束
	username VARCHAR(10) NOT NULL, # 非空约束
	tel VARCHAR(11) UNIQUE # 唯一约束
);
2:删除表,drop table 表名;
3:查看表,show tables;查看表的详细信息,desc 表名;

5.表的修改操作

1:添加列,alter table 表名 add 列名 数据类型 约束;
ALTER TABLE users ADD tel INT;
2:修改列的类型和约束,alter table 表名 modify 列名 数据类型 约束;
ALTER TABLE users MODIFY tel VARCHAR(20);
3:修改列名,alter table 表名 change 旧列名 新列名 数据类型 约束;
ALTER TABLE users CHANGE tel utel VARCHAR(20);
4:删除列,alter table 表名 drop 列名;
5:修改表名,rename table 旧表名 to 新表名;
6:修改字符集,alter table 表名 character set 字符集;

6.数据的操作

1:添加数据,insert into 表名 (列名1,类名2,类名3) values (值1,值2,值3)[可以不写自增主键的值];			insert into 表名 values (值1,值2,值3)[必须写自增主键的值];			insert into 表名 values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3)[必须写主键];
2:修改数据,update 表名 set 列1=值1,列2=值2 where 条件;
条件(&& and,|| or,! not)。
3:删除数据,delete from 表名 where 条件[一条一条的删除,不清空自增主键的值];			truncate table 表名[将表全部删除,然后重建表,自增主键为0];

7.数据的基本查询

1:查询指定列,SELECT uid,username FROM users;(*表示查询所有)。
2:去重复的查询,distinct。SELECT DISTINCT username FROM users;
3:使用as设置别名,不写也可以。SELECT username AS name FROM users;			SELECT username name FROM users;

8.条件查询

运算符解释
'> < <= >= = <> ’大于、小于、大于(小于)等于、不等于
BETWEEN …AND…显示在某一区间的值(含头含尾)
IN(set)显示在in列表中的值,例:in(100,200)
LIKE 通配符模糊查询,Like语句中有两个通配符:% 用来匹配多个字符;例first_name like ‘a%’;_ 用来匹配一个字符。例first_name like ‘a_’;
IS NULL判断是否为空
and多个条件同时成立
or多个条件任一成立
not不成立

9.查询之后的处理

/*查询使用的数据*/
CREATE TABLE zhangwu (
  id INT PRIMARY KEY AUTO_INCREMENT,
  zname VARCHAR(200),
  money DOUBLE
);
1:排序,order by 列名 [desc(降序)][asc(升序,默认)];
2:分组查询,group by。SELECT SUM(money),zname FROM zhangwu GROUP BY zname;
3:在分组中where是先进行过滤,然后对结果进行分组。分组之后的过滤可以使用having,如:SELECT SUM(money) total,zname FROM zhangwu WHERE zname LIKE '%支出%' GROUP BY zname HAVING total > 5000 ORDER BY total DESC LIMIT 2;

10.乱码问题

1:MySQL安装时指定的编码是utf-8,Windows的cmd窗口的默认编码是GBK。使用set names'gbk';set names'utf8';设置窗口编码。
2:编码的查看,show variables like 'character%';更改,set character_set_results=gbk;

11.聚合函数

函数含义
count统计不是null的行数
sum求和,忽略null值,非数值为0
max求最大值,不忽略null
min求最小值,不忽略null,null为0
avg求平均值,忽略null
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值