MySQL基本使用
-
下载安装MySQL
-
登录数据库
mysql -uroot -p # 使用root用户登录
-
显示所有数据库
show databases;
-
使用某一个数据库
use 数据库名;
-
查询数据库中所有数据表
show tables;
-
查看数据表中列信息
desc 数据表;mysql> desc person; +-------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | name | varchar(10) | NO | | NULL | | +-------+-------------+------+-----+---------+----------------+
- 创建数据库
create database 数据库名;
-
删除数据库
drop database 数据库名; -
创建数据表
create table 数据表名(字段名,字段类型);# auto_increment定义为自增,一般用于主键,数值会自动+1 # primary key用于定义主键 # default charset 设置编码格式 create table test(id int(10) not null auto_increment, name varchar(10) not null, age int(10) not null, primary key(id)) default charset=utf8;
-
删除数据表
drop table 数据表名; -
插入数据
insert into 数据表名(key1, key2, key3...) values (value1, value2, value3...);insert into test(name, age) values ("张三", 18);
-
查询数据
select * from 数据表名; # 查询数据表中所有内容
select 列 from 数据库 where 条件 limit N; # 查询数据表中指定条件的内容(前N个数据)# 查询test中所有内容 select * from test; # 查询test中id=1的name select name from test where id=1; # 查询test中age=33的前4个name select name from test where age=33 limit 4;
-
更新数据
update 数据表名 set column1=value1, column2=value2..where 条件;# 更新test表中id=1时,name和age的值 update test set name="李四", age=28 where id=1;
-
删除数据
delete from 数据表名 where 条件;# 删除test表中所有内容,test表还存在,内容删除 delete from test; # 删除test表中name="李四"的行 delete from test where name="李四"
-
order by用法
select 查询字段 from 数据表名 order by 字段 desc/asc;#查询test表中name字段数据,并按照从大到小排序 select name from test order by age desc; #查询test表中name字段数据,取最大数据 select name from test order by age desc limit 1; #查询test表中name字段数据,并按照从小到大排序 select name from test order by age asc;
-
like用法
select column from 数据表 where column like "%";# 查询test表中以x开头的name select name from test where name like "x%"; # 查询test表中以d结尾的name select name from test where name like "%d";
-
union用法
连接两个以上的 select 语句的结果组合到一个结果集合中
select column from table1 union select column from table2;# 从person表和test表中获取name的集合(删除重复数据) select name from person union select name from test; # 从person表和test表中获取name的集合(包含重复数据) select name from person union all select name from test;
- alter用法
添加、删除、修改表的列/约束# 修改表名 alter table person rename to t_person; # 添加age列 alter table person add age int(10); # 删除age列 alter table person drop age; # 修改age列名改为column_age alter table person change age column_age int(10); # 修改age列属性 alter table person modify age int(20);
- MySQL事务
commit :提交事务,并使已对数据库进行的所有修改成为永久性的,默认情况下自动提交
rollback :回滚事务,会结束用户的事务,并撤销正在进行的所有未提交的修改
PyMySQL:connect.commit() connect.rollback()
结合PyMySQL使用
import pymysql
# 数据库连接
con = pymysql.connect(
host="localhost",
user="root",
password="123456",
port=3306,
database="mydb"
)
# 创建游标
cur = con.cursor()
# 执行sql语句
sql = "select * from test;"
cur.execute(sql)
# 获取结果
result = cur.fetchall()
print(result)
# 关闭连接
cur.close()
con.close()