数据库一
(下划线部分可替换其他文字)
(大小写不区分,都能执行,但习惯上关键字用大写,其他小写)
(1)库级操作:
- 显示所有库: SHOW DATABASES;
- 创建库: CREATE DATABASE db_name;
- 显示库创建信息: SHOW CREATE DATABASE db_name;
- 删除库: DROP DATABASE db_name;
- 切换当前数据库: USE db_name; (切换数据库后可进行表的操作)
(2)表级操作:
(结尾可以是分号或者\G,都能执行,但展现出来的效果不一样)
-
显示所有表: SHOW TABLES;
SHOW TABLES FROM <u>db_name;</u> **//仅仅显示哪个库里的表**
-
创建表: CREATE TABLE tbl_name(create_definition,…); //必须给定数据类型
CREATE TABLE rrr(id int)
-
显示表创建信息: SHOW CREATE TABLE tb_name; //建议使用\G结尾
-
删除: DROP TABLE tb_name;
(3)数据库CRUD操作
C:CREATE/INSERT #创建/插入
R:READ/SELECT #读取/查询
U:UPDATE #更新
D:DELETE #删除
CREATE TABLE students (
number CHAR(9), # 学号
name VARCHAR(20), # 姓名
age INT, # 年龄
birth DATE # 生日
);
-
指定列插入: INSERT [INTO] tb_name(col_name,col_name…) VALUES (value_list,value_list…);
插入某列某值
INSERT INTO students(number, name) VALUES('001', 'yuanjun');
效果图:
2.全列插入: INSERT [INTO] tb_name VALUES (all_values);
INSERT INTO students VALUES('002', 'xuxin', 18, '2018-5-21');
效果图:
3.多行插入: INSERT INTO tb_name(col_names)
VALUES (value_1), (value_2), …;
INSERT INTO students VALUES('003', 'zhangjin', 20, '2018-05-21'),
('004', 'zhanglinlin', 20, '2018-05-21'),
('005', 'tanzhou', 20, '2018-05-21'),
('006', 'zhangsan', 20, '2018-05-21');
效果图:
4.指定列查询:SELECT col_names FROM tb_name;
SELECT age FROM students;
5.全列查询: SELECT * FROM tb_name;
SELECT * FROM students;
6.带条件的查询: SELECT col_names FROM tb_name WHERE conditions;
SELECT age FROM students WHERE age > 18;
7.更新数据
***UPDATE tb_name***
***SET <u>field_1</u>=<u>value_1</u>,***
<u>*****field**_2<</u>/u>=<u>value_2</u>,***
…
***WHERE <u>a_field = a_value;***</u>
//更改数据时where后面跟的是主键,就是永远不会重复的数据,这里number就是主键。
UPDATE students
SET age = 18
WHERE number = '004';
8.删除 DELETE FROM tb_name
WHERE <u>a_field</u> = <u>a_value;</u>
//删除的时候where后面也要是主键
DELETE FROM students
WHERE number = ''
(4)Python操作MySQL
import pymysql
db_config = {
'host': '127.0.0.1',
'user': 'root',
'password': 'qwe123',
'db': 'tanzhou'
}
# 建立连接
conn = pymysql.connect(**db_config)
#建立游标,游标才操作数据库数据
cursor = conn.cursor()
#执行语句(举个例子)
cursor.execute('SELECT * FROM students')
# cursor.execute(sql)
#获取数据集,需要主动获取数据
values = cursor.fetchall()
#打印数据
for value in values:
print(value)
#提交,把数据保存到磁盘去,保险操作
conn.commit()
#游标关闭
cursor.close()
#连接关闭
conn.close()
补充:
常见数据类型
INT:数据
CHAR :字符串,定长,浪费空间(如果给定5,不管value是什么,都按照5占位)
VARCHAR :字符串,不定长,占用的空间可变(占位大小由value决定)
DATE :日期
常见数据类型
[外链图片转存中…(img-CnNE3vmp-1563683518379)]\截图\1.png)
INT:数据
CHAR :字符串,定长,浪费空间(如果给定5,不管value是什么,都按照5占位)
VARCHAR :字符串,不定长,占用的空间可变(占位大小由value决定)
DATE :日期