SQL操作库操作表,SQL常用所有类型函数,SQL常用所有数据类型,sql约束,所有sql语句

1.数据库

1.创建数据库

CREATE DATABASE  `库名`;

2.显示所有数据库

SHOW DATABASE;

3.选择数据库

USE  `库名`;

4.删库

DROP DATABASE [IF EXISTS] `库名`;

5.退出

QUIT;

2.函数

1.聚合函数

功能函数
计算总和SUM()
平均数AVG()
最大值MAX()
最小值MIN()
计数COUNT()

2.字符串类函数

功能函数
连接字符串CONCAT(s1,s2,s3,.....)
将字符串s从x位置开始y个字符替换成form字符INSERT(s,x,y,form)
将字符串全部变成小写LOWER(s)
将字符串全部变成大写UPPER(s)
返回字符串x位子开始y个字符与MID基本一样SUBSTRING(s,x,y)
返回字符串x位置开始y个字符MID(s,x,y)
去除字符串左侧的空格LTRIM(s)
去除字符串右侧的空格RTRIM(s)
去除字符串左右两侧的空格TRIM(s)
用字符串pad来对s左侧进行填充,直至长度达到lenLPAD(s,len,pad)
用字符串pad来对s右侧进行填充,直至长度达到lenRPAD(s,len,pad)
将s重复x遍后返回REPEAT(s,x)
将字符串s中包含form的字符替换成targetREPLACE(s,form,target)
比较s1与s2,如果相同返回0,s2大于s1返回1,s2小于s1返回-1STRCMP(s1,s2)
返回字符串左侧x个字符LEFT(s,x)
返回字符串右侧x个字符RIGHT(s,x)
返回s的长度LENGTH(s)
返回s颠倒顺序REVERSE(s)

3.数字类函数

功能函数
返回大于n最小的整数CEIL(n)
返回小于n最大的整数FLOOR(n)
返回0到1的随机数RAND()
将n四舍五入保留y位小数ROUND(n,y)
将n非四舍五入保留y位小数TRUNCATE(n,y)

4.日期类函数

功能函数
返回当前日期时间NOW()
返回当前日期CURDATE()
返回当前时间CURTIME()
返回日期date为一年中的第几周WEEK(date)
返回日期date中的年YEAR(date)
格式化日期DATE_FORMAT(s,pattern)
返回d1与d2相差的天数DATEDIFF(d1,d2)
返回date加上n天后的日期ADDDATE(date,n)
返回time的小时值HOUR(time)
返回time的分钟值MINUTE(time)
获取月份MONTH()

3.数据类型

1.整形

数据类型字节
TINYINT1
SMALLINT2
MEDIUMINT3
INT4
BIGINT8

2.浮点型

数据类型精度
FLOAT[(M,D)]小数点后6-7位(常用)
DOUBLE[(M,D)]小数点后14-15位

3.日期时间类型

数据类型字节日期格式
datetime8YYYY-MM-DD HH:MM:SS
timestamp4YYYY-MM-DD HH:MM:SS
date3YYYY-MM-DD
year1YYYY
time2HH:MM:SS

4.字符型

类型说明
CHAR(M)1
VARCHAR(M)2

4.属性约束

关键字约束
NULL可以为空
NOT NULL非空约束
DEFAULT默认约束
UNIQUE KEY(UK) 唯一约束
PRIMARY KEY(PK)主键约束
FOREIGN KEY(FK)外键约束
AUTO_INCREMENT自动增加
COMMENT注释
UNSIGNED无符号

5.注释

单行注释:# 内容…
多行注释:/* 内容… */

6.表操作

1.创建表

CREATE TABLE `表名`(
       `列名1`  数据类型 [约束] [索引] [注释],
       `列名2`  数据类型 [约束] [索引] [注释],
       ………
      `列名n`  数据类型 [约束] [索引] [注释]
)[表类型] [表字符集] [注释];
#例子:
CREATE TABLE `表名`(
	`列名1` INT(4)[数据类型]  NOT NULL[不能为空]  COMMENT '学号'  PRIMARY KEY,
	`loginPwd` VARCHAR(20) NOT NULL COMMENT '密码',
	`studentName` VARCHAR(50) NOT NULL COMMENT '姓名' ,
	`sex` CHAR(2) DEFAULT '男' NOT NULL COMMENT '性别',
	`gradeId` INT(4) UNSIGNED COMMENT '年级',
	`phone` VARCHAR(50) COMMENT '电话' ,
	`address` VARCHAR(255) DEFAULT '地址不详' COMMENT '地址' ,
	`bornDate` DATETIME  COMMENT '出生日期' ,
	`email` VARCHAR(50) COMMENT '邮件账号',
	`identityCard` VARCHAR(18) UNIQUE KEY COMMENT '身份证号' 
)COMMENT = "学生表";

2.表及表中字段的操作

功能语句
查看数据库中的表SHOW TABLES;
删除表DROP TABLE [IF EXISTS] 表名;
查看表的定义DESCRIBE 表名 或 DESC 表名;
查看表的字段信息SHOW COLUMNS FROM 表名;
查看表的所有信息SHOW CREATE TABLE 表名;
查看字段的详细信息SHOW FULL COLUMNS FROM 表名称;
查看字段的简要信息SHOW COLUMNS FROM 表名称;
修改表名ALTER TABLE 原表名 RENAME [TO] 新表名;
添加表字段ALTER TABLE 表名称 ADD 字段名 数据类型 [属性];
修改表的字段名称ALTER TABLE 表名称 CHANGE 原字段名 新字段名 数据类型 [属性];
修改某个表的字段类型ALTER TABLE 表名称 MODIFY 字段名称 字段类型 [是否允许非空];
删除某一字段ALTER TABLE 表名称 DROP 字段名;
添加非空约束ALTER TABLE 表名称 MODIFY 字段名 INT(10) NOT NULL;
删除非空约束ALTER TABLE 表名称 MODIFY 字段名 INT(10);
添加唯一键ALTER TABLE 表名称 ADD UNIQUE ( 字段名) [字段属性];
删除唯一性约束ALTER TABLE 表名称 DROP INDEX 字段名;
修改主键ALTER TABLE 表名称 DROP PRIMARY KEY ,ADD PRIMARY KEY ( 字段名 );
添加主键约束ALTER TABLE 表名 ADD CONSTRAINT 主键名称(形如:PK_表名) PRIMARY KEY 表名(主键字段);
删除主键约束ALTER TABLE 表名 DROP PRIMARY KEY;
添加外键约束ALTER TABLE 从表 ADD CONSTRAINT 外键名称(形如:FK_从表_主表) FOREIGN KEY (外键字段) REFERENCES 主表(主键字段);
解除外键约束alter table 表名 drop foreign key 外键名称;
删除外键字段alter table 表名 drop 外键字段名;
添加自增长:ALTER TABLE 表名 MODIFY 字段名 INT(10);
删除自增长ALTER TABLE 表名 MODIFY 字段名 INT(10);
添加零填充ALTER TABLE 表名 MODIFY 字段名 INT(10) ZEROFILL;
删除零填充ALTER TABLE 表名 MODIFY 字段名 INT(10);
添加默认约束ALTER TABLE 表名 MODIFY 字段名 INT(10) DEFAULT '值';
删除默认约束ALTER TABLE 表名 MODIFY 字段名 INT(10);
添加无符号ALTER TABLE t_user MODIFY user_id INT(10) UNSIGNED;
删除无符号ALTER TABLE t_user MODIFY user_id INT(10);
添加单行INSERT [INTO] 表名 [(字段名列表)] VALUES (值列表);
添加多行INSERT [INTO] 表名 [(字段名列表)] VALUES (值列表),(值列表),(值列表),(值列表),……;

3.查询

1.查询结果插入到新表中

#语法1:(表必须先存在而且上下类型要相对)
INSERT [INTO] `新表名`(字段1,字段2,……,字段n) 
SELECT 字段1,字段2,……,字段n 
FROM `原表`;

#语法2:(一般用语法2)
CREATE TABLE `新表名`(
	SELECT 字段1,字段2,……,字段n 
	FROM `原表`;
);

2.基本查询

SELECT `字段列表`
FROM  `表名`或 视图
[ WHERE 查询条件]
[GROUP BY <分组查询的字段名>]
[ORDER BY <排序的字段名>[ASC升、DESC]];
[LIMIT [ 位置偏移量(按下标开始显示(从0开始)),]显示几行数据 ];

3.查询的所有条件

select 字段名1 [as 别名 ] , 字段名2 [as 别名 ] ,字段名3 [as 别名 ] ……
from 表名 [as 别名],表名 [as 别名]……
where 条件 
    =   >   <    >=   <=    !=   <>
    is
 
    like

    regexp 
        ^   开头
        &  结尾
        []  一个字符
        {}  字符个数
        |and or not   
    between and         
    in any all exists
       
      
        any 任意一个
            	select *
            	from country
            	#where Population >any(14786000,2943000,0)
            	where population >0;
        
        all  所有
            	select *
            	from country
            	where Population >all(14786000,2943000,0)
            	where population >14786000;
            
        exists
            #两个表 查询出有人的班
            select classname from class 
            where EXISTS (select * from stu4 where class.classid = stu4.classid);
order by
    asc 默认升序
    desc 降序
    单字段:
            #降序排列国家信息
        	select * 
        	from country
        	order by Population desc;
    
    多字段:
            #按照大洲升序排列,再按照人口降序排列
            	select * 
            	from country
            	order by Continent asc, Population desc;
    
group by
    聚合函数:avg() count() sum()  min()  max()
    #ifnull()函数 如果不为空采用自己的值,如果为null转换为0
    select avg(ifnull(score,0)) as 'ifnull平均分'
    from stu4;
having
(left|right|inner) join on
limit 0,10;
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值