一、DDL操作數據庫
關鍵字理應大寫,爲便於記憶,本篇都採用小寫形式。
DDL(DATA Definition Language):數據定義語言,用於定義數據庫對象。
1、創建數據庫
create database db1; #創建一個數據庫,名字叫mydb
create database if not exists db2; #如果db2不存在,則創建數據庫db2
create database db3 character set gbk; #創建數據庫db3並制定字符集爲gbk
-- 綜合:如果db4不存在,就創建它,並且設置字符集爲utf8(!不是utf-8)
create database if not exists db4 character set utf8;
2、查看數據庫
show databases; # 查詢所有數據庫的名稱
show create database db1; # 查詢已創建數據庫db1的字符集
3、修改數據庫
alter database db2 character set utf8; #修改數據庫db2字符集爲utf8
4、刪除數據庫
drop database db4; #刪除數據庫db4
drop database if exists db3; #判斷是否存在並刪除db3
5、使用數據庫
use db1; # 使用數據庫db1
select database(); #查看正在使用的數據庫
二、DDL操作數據表
在使用某個數據庫的前提下,纔可以操作庫裏面的表結構。
1、創建表
建表格式
create table 表名(
列名1 數據類型1,## 此處可添加字段註釋
列名2 數據類型2,## 此處可添加字段註釋
...
列名n 數據類型n ## 此處可添加字段註釋
); ## 最後一列列不需要加逗號
如:
create table student (
id int, -- 編號
NAME varchar(20), -- 姓名
gender char(8), -- 性別
birthday date -- 生日
);
MySQL數據類型
數據類型有許多,以下爲幾個比較基礎重要的。
文本相關
- varchar(m):可變長度字符串 ,使用幾個字符就佔用幾個,m爲0-65535之間。
- char(m):定長字符串,無論使用幾個字符都將佔滿全部,多餘的以空字符補充,m爲0-255之間。
關於char和varchar推薦看這篇:char與varchar類型區別的深度剖析
數相關
- int:整數類型。
- double:雙精度浮點數類型。
- float:單精度浮點數類型。
時間相關
-
date:日期類型,只包含年月日:
yyyy-MM-dd
。 -
time:時間類型,只包含時分秒:
HH:mm:ss
。 -
datetime:日期和時間類型都有,包含年月日時分秒:
yyyy-MM-dd HH:mm:ss
。 -
timestamp:時間戳 格式和上相同,如果不給這個字段賦值,則自動用系統默認時間賦值。
複製表
create table new_stu like old_stu; # 複製表的操作
2、查看錶
show tables; # 查詢該數據庫中所有的表名稱
desc student; # 查詢表student的結構
show create table student; #查看student的創建表 SQL 語句
3、刪除表
drop table student; #刪除表student
drop table if exists student; #判斷student是否存在,並刪除
4、修改表
修改表名
alter table student rename to stu; # 把student表改名爲stu
rename table student to stu;
修改字符集
alter table stu character set gbk; # 修改字符集爲gbk
添加表列
alter table stu add address varchar(20); # 增加一列,列名爲address,數據類型varchar
修改列類型
alter table stu modify address char(10); # 修改address的數據類型,改爲char
修改列名
alter table stu change address addr char(10); #修改列名爲addr,數據類型改爲char
刪除列
alter table stu drop addr; # 刪除addr列