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 會做去重操作

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