码迷,mamicode.com
首页 > 数据库 > 详细

SQL常用语句1

时间:2021-02-18 13:20:39      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:max   正则表达   删除   incr   常用sql   useful   转义   rom   locate   

mySQL常用SQL语句

【零】用户管理

  1. 新建用户
CREATE USER user_name IDENTIFIED BY ‘password‘;
  1. 更改密码
SET PASSWORD FOR user_name = PASSWORD(‘newpassword‘);
  1. 权限管理
SHOW GRANTS FOR user_name;  --查看name用户权限
GRANT SELECT ON db_name.* TO user_name; --给name用户db_name数据库的所有权限
REVOKE SELECT ON db_name.* TO name; --GRANT的反操作,去除权限

【一】数据库操作

  1. 查看数据库
SHOW DATABASES;
  1. 创建数据库
CREATE DATABASE db_name;
  1. 使用数据库
USE db_name;
  1. 删除数据库
DROP DATABASE db_name;

【二】表操作

  1. 创建表
CREATE TABLE table_name(
id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,  --ID值,无符号、非空、递增(唯一性,适做主键)
name VARCHAR(60) NOT NULL,
score TINYINT UNSIGNED NOT NULL DEFAULT 0, --默认值0
PRIMARY KEY(id)
)ENGINE=InnoDB  --设置表的存储引擎,一般常用InnoDB和MyISAM。InnoDB可靠,支持事务;MyISAM高效不支持全文检索
DEFAULT charset = utf8; --设置默认编码,防止数据库中文乱码

如果有条件地创建数据表还可以使用

CREATE TABLE IF NOT EXISTS tb_name(...)
  1. 复制表:
CREATE TABLE tb_name2 SELECT * FROM tb_name;

或者复制部分表:

CREATE TABLE tb_name2 SELECT id,name FROM tb_name;
  1. 创建临时表:
CREATE TABLE TEMPORARY TABLE tb_name; -- 和创建普通表一样
  1. 查看数据库中可用的表:
SHOW TABLES;
  1. 查看表的结构:
DESCRIBE tb_name;

或者:

SHOW COLUMNS IN tb_name;   -- FROM也行
  1. 删除表:
DROP [TEMPORARY] TABLE [IF EXISTS] tb_name [,tb_name2];
  1. 重命名表:
RENAME TABLE name_old TO name_new;

或者:

ALTER TABLE useless RENAME useful;

【三】字段操作(修改表)

  1. 更改表结构
ALTER TABLE tb_name ADD [CHANGE,DROP,RENAME]  --  要更改的内容

实例:

ALTER TABLE tb_name ADD COLUMN address varchar(60) NOT NULL;
ALTER TABLE tb_name DROP address;
ALTER TABLE tb_name CHANGE column_name_old column_name_new INT(6);

【四】插入数据

  1. 插入数据:
INSERT INTO camp(camp_id,camp_name,camp_leader) VALUES (null,‘艾米莉亚阵营‘,2),(null,‘菲鲁特阵营‘,3);
  • 这里的插入多条数据在后面加上逗号,直接写入插入的数据即可.
  • 主键camp_id是自增的字段,可以不用写.
    实例:
INSERT INTO charactor VALUES (null,‘艾米莉亚‘,null,2,1),(null,‘菲鲁特‘,null,0,2);
  • 这里按顺序插入表的所有字段,则字段名列表可以省略
  1. 插入检索出来的数据:
INSERT INTO useful SELECT * FROM charactor;

*代表所有字段,也可以挨个写入需要的字段

【五】更新数据

  1. 指定更新数据:
UPDATE charactor SET charactor_name=‘冰之魔女艾米莉亚‘ WHERE charactor_id=2;
UPDATE tablename SET columnName=NewNalue [WHERE condition];

【六】删除数据

  1. 删除数据:
DELETE FROM charactor WHERE charactor_id=1;

【七】条件控制

  1. WHERE 语句
SELECT * FROM charactor WHERE charactor_camp_id=1;

2.HAVING 语句

SELECT charactor_camp_id as ‘阵营编号‘,count(*) as ‘阵营人数‘ 
FROM charactor 
GROUP BY charactor_camp_id 
HAVING count(*)>1;

tips:
①执行顺序:
where 早于 group by 早于 having
②where是约束声明,在返回结果前起作用
③having是过滤声明,对查询结果进行过滤操作
④having后面可以使用聚合函数:sum\count\max\avg

  1. 相关条件控制符:
    ①= ②> ③< ④<>
    ⑤IN(1,2,3,6..)
    ⑥BETWEEN a AND b
    ⑦NOT ⑧AND ⑨OR
    ⑩LINK() 用法中 %为匹配任意字符; _匹配一个字符 (可以是汉字)
    IS NULL 空置检测

【八】MySQL正则表达式

  1. MySQL支持REGEXP的正则表达式
SELECT * FROM tb_name WHERE name REGEXP ‘^[A-D]‘;  -- 找出以A-D为开头的name
  1. 特殊字符需要转义.

【九】MySQL的一些函数

1.字符串链接:

SELECT CONCAT(charactor_name,‘来自于阵营‘,charactor_camp_id) as ‘角色出身‘ FROM charactor;
  1. 数学函数:
AVG 
SUM 
MAX 
MIN 
COUNT
  1. 文本处理函数
TRIM 
LOCATE 
UPPER 
LOWER 
SUBSTRING
  1. 运算符:
  • - * /
  1. 时间函数:
DATE()
CURTIME()
DAY()
YEAR()
NOW()

【十】分组查询

  1. 分组查询可以按照指定的列进行分组:
SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;
  1. 条件适用 HAVING
  2. ORDER BY 排序:
ORDER BY DESC|ASC  降序排序和升序排序

【十一】SQL执行顺序

(1 )from
(2) on
(3) join
(4) where
(5) group by (开始使用select中的别名,后面的语句中都可以使用)
(6) avg,sum....
(7) having
(8) select
(9) distinct
(10) order by

SQL常用语句1

标签:max   正则表达   删除   incr   常用sql   useful   转义   rom   locate   

原文地址:https://www.cnblogs.com/ylq167/p/14406552.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!