MySQL 產品的介紹和安裝
MySQL服務的啟動和停止
方式一:通過mysql自帶的客戶端
方式二:通過管理員身份運行
net start 服務名
net stop 服務名
MySQL服務的登錄和退出
方式一:通過mysql自帶的客戶端
只限于root用戶
方式二:通過windows自帶的客戶端
登錄:
mysql 【-h主機名 -p端口號】-u用戶名 -p密碼
退出:
exit或ctrl+c
SQL語句的分類
DDL(Data Definition Language):數(shù)據定義語言
- 可以通過DDL語句對數(shù)據庫或者表進行:創(chuàng)建、刪除、修改等操作
DML(Data Manipulation Language):數(shù)據操作語言
- 可以通過DML語句對表進行:添加、刪除领突、修改等操作
DQL(Data Query Language):數(shù)據查詢語言
DCL(Data Control Language): 數(shù)據控制語言
- 對數(shù)據庫悍汛、表格的權限進行相關訪問控制操作
數(shù)據庫的操作
查看當前數(shù)據庫
show databases
創(chuàng)建數(shù)據庫語句
create database if not exists test
查看當前正在使用的數(shù)據庫
select database()
刪除數(shù)據庫
drop database if exists test
修改數(shù)據庫的編碼
alter database test character set utf8 collate = utf8_unicode_ci
數(shù)據表的操作
# 查看所有的表
SHOW TABLES;
# 新建表
CREATE TABLE IF NOT EXISTS students(
`name` VARCHAR(10),
age INT,
score INT,
height DECIMAL(10, 2)
)
# 刪除表
DROP TABLE IF EXISTS students
# 查看表的結構
DESC students
# 查看表的創(chuàng)建語句
SHOW CREATE TABLE students
SQL的數(shù)據類型
- 數(shù)據類型:數(shù)字類型宵蛀,日期和時間類型煤痕,字符串(字符和字節(jié))類型塘匣,空間類型和JSON數(shù)據類型
- 整數(shù)數(shù)字類型:INTEGER驰徊、INT,SMALLINT脱衙,TINYINT荤胁,MEDIUMINT, BIGINT
- 浮點數(shù)字類型:FLOAT躯喇,DOUBLE(FLOAT是4個字節(jié)倦微,DOUBLE是8個字節(jié))
- 精確數(shù)字類型:DECIMAL劣欢,NUMERIC(DECIMAL是NUMERIC的實現(xiàn)形式)
- 日期類型:YEAR以YYYY格式顯示值
- DATE類型用于具有日期部分但沒有時間部分的值
- DATE以格式YYYY-MM-DD顯示值
- 支持的范圍是‘1000-01-01’到‘9999-12-31’
- DATETIME類型用于包含日期和時間部分值
- 以格式'YYYY-MM-DD hh:mm:ss'顯示值
- 支持范圍是1000-01-01 00:00:00到9999-12-31 23:59:59
- TIMESTAMP數(shù)據類型被用于同時包含日期和時間部分的值
- 以格式'YYYY-MM-DD hh:mm:ss'顯示值
- 支持的范圍是UTC的時間范圍:'1970-01-01 00:00:01' 到 '2038-01-19 03:14:07'
- 字符串類型
- CHAR類型在創(chuàng)建表時為固定長度,長度可以是0到255之間的任何值,在被查詢時雹舀,會刪除后面的空格
- VARCHAR類型的值是可變長度的字符串签财,長度可以指定為0到65535之間的值,被查詢時怜姿,不會刪除后面的空格
- BINARY和VARBINARY類型用于存儲二進制字符串醉者,存儲的是字節(jié)字符串
- BLOB用于存儲大的二進制類型
- TEXT 用于存儲大的字符串類型
表約束
- 主鍵:PRIMARY KEY
- 一張表中,我們?yōu)榱藚^(qū)分每一條記錄的唯一性,必須有一個字段是永遠不會重復尖滚,并且不會為空的,這個字段我們通常會將它設置為主鍵
- 主鍵是表中唯一的索引
- 并且必須是NOT NULL的恨锚,如果沒有設置NOT NULL,那么MySQL也會隱士的設置為NOT NULL
- 主鍵也可以是多列索引呢撞,PRIMARY KEY(key_part,……),我們一般稱之為聯(lián)合主鍵
- 建議:開發(fā)中主鍵字段應該和業(yè)務無關的苞俘,盡量不要使用業(yè)務字段來做主鍵
- 唯一:unique
- 某些字段在開發(fā)中希望是唯一的,不會重復晋修,比如手機號山叮、身份證號碼
- 使用UNIQUE約束的字段在表中必須是不同的
- 不能為空:NOT NULL
- 默認值:DEFAULT
- 自動遞增:AUTO_INCREMENT
創(chuàng)建完整表
# 完整的創(chuàng)建表的語法
CREATE TABLE IF NOT EXISTS users (
id INT PRIMARY KEY AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
age INT DEFAULT 0,
phoneNum VARCHAR(20) UNIQUE,
createTime TIMESTAMP
)
# 修改表
# 1.修改表名字
ALTER TABLE users RENAME TO `user`
`user`
# 2.添加一個新列
ALTER TABLE USER ADD updateTime TIMESTAMP
# 3.修改字段的名稱
ALTER TABLE USER CHANGE phoneNum telphone VARCHAR(20)
# 4.修改字段的類型
ALTER TABLE USER MODIFY `name` VARCHAR(30)
# 5.刪除某一個字段
ALTER TABLE USER DROP `age`
DML
# 插入數(shù)據
INSERT INTO USER VALUES(110, '小明', '13456789','2020-11-23', '2020-11-23')
INSERT INTO USER (`name`, telphone, createTime, updateTime)
VALUES ('kobe', '324234', '2020-11-12', '2020-11-23')
INSERT INTO USER (`name`, telphone) VALUES ('kobe1', '324234111')
# createTime和updateTime 可以自動設置
ALTER TABLE USER MODIFY createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE USER MODIFY updateTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
# 刪除數(shù)據
DELETE FROM USER WHERE id = '111'
# 更新數(shù)據
UPDATE USER SET `name`='lily111', telphone='98765334567' WHERE id = 113
DQL語句