SQL语句基础应用

SQL概述

结构化查询语言(Structured Query Language)简称 SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。
SQL 是 1986 年 10 月由美国国家标准局(ANSI)通过的数据库语言美国标准,接着,国际标准化组织(ISO)颁布了 SQL正式国际标准。1989 年 4 月,ISO 提出了具有完整性特征的 SQL89 标准,1992年 11 月又公布了 SQL92 标准。
小提示: SQL语句对大小写不敏感

SQL常用种类

DDL 数据定义语言
DCL 数据控制语言
DML 数据操作语言
DQL 数据查询语言

DDL的应用

创建数据库:
CREATE DATABASE zabbix CHARSET utf8mb4;

查看库情况:
SHOW DATABASES;
SHOW CREATE DATABASE zabbix;

删除数据库:
DROP DATABASE zabbix;

修改数据库字符集:
ALTER DATABASE zabbix CHARSET utf8mb4;

创建表:
CREATE TABLE stu (
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT COMMENT ‘学号’,
sname VARCHAR(255) NOT NULL COMMENT ‘姓名’,
age TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT ‘年龄’,
gender ENUM(‘m’,‘f’,‘n’) NOT NULL DEFAULT ‘n’ COMMENT ‘性别’,
intime DATETIME NOT NULL DEFAULT NOW() COMMENT ‘入学时间’
)ENGINE INNODB CHARSET utf8mb4;

查看表的结构:
多种方法:
desc stut;
explain zabbix.stu;
show columns from zabbix.stu;
show fields from zabbix.stu;

查看创建表执行了哪些命令:
show create table stu \G

创建一个表结构一样的表:
CREATE TABLE test LIKE stu;

删除表:
DROP TABLE test;

修改表名称:
alter table zabbix rename newzbx;

修改表中的字段类型:
语法:alter table 表名 modify 要修改的字段名要修改的类型;
alter table students modify id int(10);

修改表中的字段类型和字段名称:
语法:alter table 表名 change 原字段名新字段名新字段类型;
alter table students change name stname char(20);

在stu表中添加qq列:
ALTER TABLE stu ADD qq VARCHAR(20) NOT NULL COMMENT ‘qq号’;
ALTER TABLE stu ADD num INT NOT NULL UNIQUE COMMENT ‘身份证’ FIRST ;
ALTER TABLE stu ADD wechat VARCHAR(64) NOT NULL UNIQUE COMMENT ‘微信号’ AFTER sname;

删除id字段:
ALTER TABLE stu DROP id;

DCL应用

授权:
grant all on . to oldboy@‘10.0.0.%’ identified by ‘123’ with grant option;
with grant option:该用户可以给其他人授权
all表示以下所有:

SELECT,INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, 
SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, 
SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, 
LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, 
CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT,
TRIGGER, CREATE TABLESPACE

权限回收:
revoke 权限 on 库.表 from 用户;

DML应用

插入字段/记录:
INSERT INTO stu(id,sname,age,sex,intime) VALUES (2,‘ls’,19,‘f’,NOW());

针对性的录入数据:
INSERT INTO stu(sname,age,sex) VALUES (‘w5’,11,‘m’);

删除记录:
DELETE FROM stu WHERE id=9;(建议配合where条件使用)

更新记录:
UPDATE stu SET sname=‘bb’ WHERE id=6;(建议配合where条件使用)

DQL应用

去重复查询:
select distinct name,age from student;MySQL 的 distinct 可以对*使用

使用 and 和 or 进行多条件查询: MySQL 查询默认是不区分大小写的,加binary可区分大小写
select id,name,age from student where binary id>1 and age>24;

MySQL 查询排序: 默认asc升序,desc降序
select distinct id from student order by id asc;

查询端口:
select @@port;

select 通用语法(单表) :

select 列
from 表
where 条件
join 另一张表
on 表.列=另一张表.列
group by 条件
having 条件
order by 条件
limit 数字啊啥的 //limit Y offect X 跳过X行显示Y行 //limit 3.3跳前3行显示3行

union 和 union all

作用: 多个结果集合并查询的功能

查询中或者美国的城市信息:
SELECT * FROM city WHERE countrycode=‘CHN’ OR countrycode=‘USA’;
改写为:
SELECT * FROM city WHERE countrycode=‘CHN’
UNION ALL
SELECT * FROM city WHERE countrycode=‘USA’;

union 和 union all 的区别 ?
union all 不做去重复
union 会做去重操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章