美文网首页
SQL 常用语句

SQL 常用语句

作者: 索性流年 | 来源:发表于2020-04-20 17:46 被阅读0次

数据库管理

--查看MySQL默认端口号
show global variables like 'port';   

--查看数据库所有全局变量
SHOW VARIABLES   

-- 登录数据库
mysql -u root -p;  
  
-- 查看所有数据库
show databases;     

--  创建数据库
create database 数据库名称;   

--指定数据库字符集
default character set utf8;   
 
--删除一个数据库
drop database 数据库名称; 
 
--  查看数据库字符集
show creare database 数据库名称;  

-- 修改数据库字符集(utf8)
alter database 数据库名称 default character set gbk;  

表管理


--  进入数据库
use 表名;    

-- 查看所有表
show tables;  

--     创建表(内为 字段名 类型) student;    查看标内结构
create table 表名(字段名 类型(长度),字段名 类型(长度)......);

-- 删除表
drop table 表名;    

-- 查看表中所有字段
desc 表名;

--  添加表字段(字段名 类型
alter table 表名 add 字段名 类型(长度);    

--    删除表中字段(字段名)
alter table 表名 drop 字段名;

--  修改字段存储类型(字段名 类型)
alter table 表名 modify 字段名 类型(长度) 

--  修改字段名(字段名 类型)
alter table 表名 change 原字段名 字段名 类型(长度) 

-- 修改表名
alter table student rename to teacher; 

增删改

-- 插入所有字段
INSERT INTO 表名 VALUES(字段值,字段值...... );  

--  插入部分字段
INSERT INTO 表名 (字段名,字段名) VALUES(字段值,字段值);    

--修改所有数据
UPDATE 表名 SET 字段名 = 字段值;    

-- 修改单条数据值
UPDATE 表名 SET 字段名 = 字段值 WHERE 条件字段名 =条件值;    

 -- 修改多个字段值
UPDATE 表名 SET 字段名 = 字段值,字段名 = 字段值 WHERE 条件字段名 =条件值;    

-- 删除数据
DELETE FROM 表名 WHERE 条件字段名 =条件值;      

-- 重置表
TRUNCATE TABLE 表名   


-- 查询表
SELECT * FROM 表名;    

 -- 查询指定列
SELECT 字段名,字段名 FROM 表名;

-- 查询时指定别名
SELECT 字段名 AS 别名值,字段名 AS 别名值 FROM 表名;

-- 查询是增加常量列
SELECT 字段名,字段名,字段名,常量名 AS 别名值 FROM 表名;

-- 查询时合并列(只能合并数值类型)
SELECT 字段名,字段名,(字段名+字段名) AS 别名值 FROM 表名;

-- 查询去重 另一种语法 SELECT DISTINCT(age) FROM `user`
SELECT DISTINCT 字段名 FROM 表名;

 -- 条件查询
SELECT * FROM 表名 WHERE 条件字段名 =条件值;

# 条件查询
-- 逻辑条件 and代表(&&)  or 代表(||)
SELECT * FROM 表名 WHERE 条件字段名 =条件值 AND 条件字段名 =条件值;

-- 比较条件 > < >= <=    ==    <>(不等于)  BETWEEN AND(范围值)
SELECT * FROM 表名 WHERE 数值字段名 BETWEEN 起始值 AND 结束值;

-- 判空条件 (NULL 空字符串)    IS NULL (判空)    IS NOT NULL(判非空)      = ' ' (判断等于空字符串)    <>' '(判断不等于空字符串)

-- 判断null
SELECT * FROM 表名 WHERE 字段名 IS NULL ;

--  (不包括null和空字符串)
SELECT * FROM 表名 WHERE 字段名 IS NOT NULL AND 字段名<>''; 


# 模糊条件(LIKE)
-- 模糊查询 % 可以替换任意下标字符, _ 只能替换一个字符
SELECT * FROM 表名 WHERE NAME LIKE '张%';

-- 常用的聚合函数 sum(求和) avg(平均数) max(最大数) min(最小数) count(个数)

-- 查询学生英语总成绩
SELECT SUM(字段名)  FROM student2;

-- 统计学生平均分
SELECT AVG(字段名) FROM student2;

-- 查询学生个数
SELECT COUNT(字段名) FROM student2;


 ## 分页查询 LIMIT(起始行,查询多少行)
-- 分页查询(当前页-1)*每页条数
SELECT * FROM 表名 LIMIT 0,2;   

-- 查询排序 语法 ORDER BY 字段 ASC/DESC
-- ASC 顺序,正序,数组递增
-- DESC 倒叙 反序,数组递减 
SELECT * FROM 表名 ORDER BY id ASC;

-- 按照英语正序并且数学到序排序
SELECT * FROM 表名 ORDER BY english ASC,math DESC;

-- 分组查询(GROUP BY)
-- 查询男女人数
SELECT 字段名,COUNT(字段名) FROM 表名 GROUP BY 字段名;

##分组筛选(HAVING)
-- 查询人数大于二的性别(分组之前的条件用 WHERE 分组之后用 HAVING)
SELECT 字段名,COUNT(字段名) FROM 表名 GROUP BY gender HAVING COUNT(字段名) >2;

数据约束


-- 主键(PRIMARY KEY)
CREATE TABLE 表名(字段名  字段类型 PRIMARY KEY );

-- DEFAULT 默认值
CREATE TABLE 表名(字段名 类型,字段名 类型(长度),字段名 类型(长度) DEFAULT '没有添加地址');

-- 非空 NOT NULL
CREATE TABLE 表名(字段名 类型,字段名 类型(长度),字段名 类型(长度) NOT NULL);

-- 不能重复(UNIQUE)
CREATE TABLE 表名(字段名 类型 UNIQUE);

-- 自增长(AUTO_INCREMENT )(ZEROFILL 零填充)
CREATE TABLE 表名(字段名  类型(长度)ZEROFILL PRIMARY KEY AUTO_INCREMENT);

-- 外键,多张表联合使用(CONSTRAINT 外键名 FOREIGN KEY(外键) REFERENCES 参考表(参考字段))
CREATE TABLE test2(id  INT PRIMARY KEY CONSTRAINT asdf FOREIGN KEY id REFERENCES student2(id));


--  多表查询 (INNER JOIN  ON) 

-- 内连接查询SELECT * FROM 表名,关联表名称 WHERE 关联条件;
SELECT * FROM user,student2 WHERE user.cid = student2.id;

-- SELECT * FROM 表名 INNER JOIN 关联表名称 ON 关联条件;
SELECT * FROM `user` INNER JOIN student2 ON user.cid = student2.id;

-- 左外连接查询(LEFT OUTER JOIN)
SELECT * FROM student2 d LEFT JOIN `user` e ON  d.id = e.id;

-- 右外连接查询
SELECT * FROM `user` RIGHT JOIN student2 ON `user`.id = student2.id;

--  自连接
SELECT e.`name`,b.`name` FROM `user` AS e LEFT JOIN `user` AS b ON e.id=b.id;

存储过程

CREATE PROCEDURE por_test()
BEGIN 
-- 可以写多个SQL语句
SELECT * FROM `user`;
END;

-- 执行存储过程
CALL por_test();

-- 删除存储过程
DROP PROCEDURE pro_test2;

-- 带有输入参数存储过程
CREATE PROCEDURE pro_find(IN id INT)
BEGIN SELECT * FROM `user` WHERE id = id;
END

CALL pro_test2(@name);

-- 带有输出参数存储过程
CREATE PROCEDURE pro_test2(OUT str VARCHAR(100))
BEGIN
SET str = '这是一个输出参数';
END

-- 调用带参数存储过程
CALL pro_test2(@name);

-- 获取返回值
SELECT @`name`; 



-- 带有输入输出存储过程
CREATE PROCEDURE pro_test2(INOUT str VARCHAR(100))
BEGIN
SELECT str;
SET str = '十里桃花';
END;

SET @name = '三生三世';
CALL pro_test2(@name);

SELECT @`name`;

-- 带有循环存储过程
CREATE PROCEDURE pro_test3(IN num INT,OUT reslt INT)
BEGIN
        -- 定义局部变量
        DECLARE i INT DEFAULT(1);
        DECLARE vsum INT DEFAULT(0);
        WHILE i <= num DO
        SET vsum = vsum+i;
        SET i = i+1;
END WHILE;
SET reslt = vsum;
END;

CALL pro_test3(100,@vsum);
SELECT @vsum;

触发器

CREATE TRIGGER tri_student AFTER INSERT ON student2 FOR EACH ROW 
INSERT INTO `user`(id,account,`password`,gender,address,name) VALUES (12,12312,asdfas,'女',asdfas,'李四');

分配权限账号

GRANT SELECT DELETE ON day16.employee TO 'eric'@'localhost' IDENTIFIED BY '123456';

备份

mysqldump -uroot -p day17 > c:/bak.sql

恢复

mysql -uroot -p day17 < d:/back.sql

相关文章

  • MySQl 常见面试题

    一、SQL语句 问题、SQL语句有哪些类型,每种类型有哪些常用关键字? DDL:数据定义语句。常用关键字有crea...

  • MySQL语法模板

    本系列文章主要归纳MySQL的SQL语句和常用的函数。 SQL语句:主要分为常用的,show,表、索引,视图,函数...

  • 数据库基础<五>

    常用SQL语句 1、SQL语句主要分为哪几类 数据定义语言DDL(Data Ddefinition Languag...

  • mysql常用SQL语句集锦

    非常有用!常用SQL语句集锦

  • MySQL面试题 | 附答案解析(十三)

    常用SQL语句 1. SQL语句主要分为哪几类 数据定义语言DDL(Data Ddefinition Langua...

  • 2017-10-19-常用的SQL语句

    常用的SQL语句 常用的SQL语句 一,简单查询 1,查询like语句:%表示匹配多个字符,_表示匹配一个字符 2...

  • 常用sql注入语句

    转载链接 渗透常用SQL注入语句大全(网上收集) 记一次通过fckeditor入侵提权拿服务器 常用sql注入语句

  • SQL查询语句

    常用SQL查询语句 一、简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SE...

  • SQL语句

    SQL基础应用 SQL语句自动补全 SQL的介绍 SQL-92标准SQL-99标准 image SQL常用分类 表...

  • 常用sql语句

    sqlite详解1.SQLiteStatement提升多次操作的性能2.删除表字段:sqlite不支持删除字段,只...

网友评论

      本文标题:SQL 常用语句

      本文链接:https://www.haomeiwen.com/subject/noxbyctx.html