寫在前面
- 本文中
[ 內容 ]代表啊可選項,即可寫可不寫。
SQL語言的基本功能介紹
SQL是一種結構化查詢語言,主要有如下幾個功能:
- 數據定義語言(DDL):全稱Data Definition Language
- 數據操縱語言(DML):全稱Data Manipulation Language
- 數據查詢語言(DQL):全稱Data Query Language
- 數據控制語言(DCL):全稱Data Control Language
- 事務控制語言(TCL):全稱Transaction Control Language
數據定義語言的用途
DDL主要是對數據庫對象(數據庫、表、視圖、索引)的操作。常用命令如下:
| 創建 | 修改 | 銷毀 |
|---|---|---|
| create | alter | drop |
數據庫的操作語句
顯示當前所有庫
-- 顯示說有的庫
show databases;
創建庫
-- 創建庫
-- create database [if not exists] 數據庫名 [charset=utf8];
-- 重復創建會報錯, 可以加上if not exists
create database if not exists student;
銷毀庫
-- 銷毀庫
-- drop database [if exists] 數據庫名;
-- 如果不知道數據庫是否存在,記得加if exists
drop database if exists student;
使用庫
-- 使用庫
-- use 數據庫名;
-- 創建數據庫后,當進行對表的操作之前,必須要先使用數據庫。
use student;
其他
-- 查看當前所在的庫
select database();
-- 修改數據庫名
rename database 舊名 to 新名;
數據表的操作
查看當前庫中都有哪些表
-- 查看當前庫中都有哪些表
show tables;
創建表
-- 格式
-- 注意:表名 和 字段名 盡量使用 ` `(反引號)括起來
crate table [if not exists] `表名`(
`字段名` 字段類型 [屬性] [索引] [注釋],
`字段名` 字段類型 [屬性] [索引] [注釋],
......
`字段名` 字段類型 [屬性] [索引] [注釋]
)[表的搜索引擎] [字符編碼] [注釋];
簡單示例:
create table if not exists `table`(
`sid` int,
`sname` varchar(20),
`age` int
)charset=utf8;
注意:由於默認使用的engine就是InnoDB,這個建表時候可以不寫。但是charset=utf8這個最好是加上,尤其是在CMD黑窗口中輸入中文的時候,
不寫這一句,會出現類似如下錯誤
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5' for column 'sname' at row 1
查看表結構和建表語句
-- 查看表結構
-- desc 表名;
desc student;
-- 查看建表語句
-- show create table 表名;
show create table stu;
修改表名
-- rename table 舊名 to 新名;
rename table student to stu;
修改表結構
修改表結構中包含給表添加某個新字段,修改表中某個字段,刪除表中某個字段
-
給表添加某個新字段,使用
add關鍵字- 默認是追加,即在最后一列添加新字段
-- alter table 表名 add 字段名 字段類型; alter table `stu` add `cid` int;- 在首位添加新字段,使用
first關鍵字
-- alter table 表名 add 字段名 字段類型 first; alter table `stu` add `cname` varchar(20) first; -
修改表中某個字段,使用
change或modify關鍵字- 修改字段名稱,使用
change關鍵字
-- alter table 表名 change 舊字段名 新字段名 字段類型; -- 修改字段age的名稱,為sage alter table `stu` change `age` `sage` int;- 修改字段類型,既可以使用
change,還可以使用modify
-- 修改sname字段的數據類型由varchar(20)為varchar(50) -- 有以下兩種方式 -- alter table 表名 change 字段名 字段名 字段類型; alter table `stu` change `sname` `sname` varchar(50); -- alter table 表名 modify 字段名 字段類型; alter table `stu` modify `sname` varchar(50);- 修改字段位置,可以配合使用
first、after關鍵字
-- 將sname字段,放置到sage后面。可以使用如下兩種方式: alter table `stu` change `sname` `sname` varchar(50) after `sage`; alter table `stu` modify `sname` varchar(50) after `sage`; -- 將sid字段,放置到首位 alter table `stu` change `sid` `sid` int first; alter table `stu` modify `sid` int first;modify不能直接修改字段名稱,其余能用change的地方,就可以用modify。
- 修改字段名稱,使用
-
刪除表中某個字段,使用
drop關鍵字-- alter table 表名 drop 字段名; -- 刪除cid這個字段 alter table `stu` drop `cid`;
清空表
truncate只刪除數據但是不刪除表結構
-- truncate table 表名;
truncate table `stu`;
銷毀表
-- drop table 表名;
drop table `stu`;
注意:一般表結構有了,數據也有了,不要輕易修改表結構,增加、刪除、修改列
