- CentOS 7上安装mysql
# CentOS 7 安装mysql 1. 检测系统是否自带安装 mysql rpm -qa | grep mysql 2. 若已安装,可以进行卸载 rpm -e mysql //普通删除模式 rpm -e --nodeps mysql //强力删除模式,若普通删除时提示存在依赖文件,则进行强力删除 3. 安装mysql # centOS 7 yum install mariadb-server mariadb //在CentOS 7中,由于 MySQL数据库已从默认的程序列表中移除,可以使用 mariadb 代替 systemctl start mariadb //启动mariadb mysqladmin --version //验证mysql是否工作正常 # centOS 6 yum install mysql yum install mysql-server yum install mysql-devel service mysqld start //启动mysql 4. 安装完成后需设置root密码 mysqladmin -u root password xxxxxx //设置root密码 mysql -u root -p //连接到sql服务器
- mysql常用的show命令
1. show databases; //显示所有数据库名称
2. show tables; 或 show tables from databse_name; //显示数据库中所有变的名称
3. show variables; //显示系统变量
4. show processlist; //显示当前运行的所有进程
5. show columns from database_name.table_name; //显示表中列名称
6. show grants for user_name; //显示一个用户的权限
7. show index from table_name; //显示表的索引
8. show create database database_name; //显示一个数据库的create语句
9. show create table table_name; //显示一个表的create语句
10. show status; //显示一些系统特定资源的信息,例如,正在运行的线程数量
11. show table status; //显示当前使用或者指定的database中的每个表的信息,信息包括表类型和表的最新更新时间
12. show privileges; //显示服务器所支持的不同权限
- mysql 数据类型
1. 数值类型:
类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
---|---|---|---|---|
TINYINT | 1 字节 | (-128,127) | (0,255) | 小整数值 |
SMALLINT | 2 字节 | (-32 768,32 767) | (0,65 535) | 大整数值 |
MEDIUMINT | 3 字节 | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 |
INT或INTEGER | 4 字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 |
BIGINT | 8 字节 | (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 |
FLOAT | 4 字节 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度 浮点数值 |
DOUBLE | 8 字节 | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 浮点数值 |
DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
2. 日期和时间类型:
类型 | 大小 (字节) | 范围 | 格式 | 用途 |
---|---|---|---|---|
DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 |
YEAR | 1 | 1901/2155 | YYYY | 年份值 |
DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 |
TIMESTAMP | 4 |
1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 |
YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
3. 字符串类型:
类型 | 大小 | 用途 |
---|---|---|
CHAR | 0-255字节 | 定长字符串 |
VARCHAR | 0-65535 字节 | 变长字符串 |
TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 |
TINYTEXT | 0-255字节 | 短文本字符串 |
BLOB | 0-65 535字节 | 二进制形式的长文本数据 |
TEXT | 0-65 535字节 | 长文本数据 |
MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 |
MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 |
LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 |
LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
- Python中pymysql模块的一般用法
1 import pymysql 2 3 # 创建连接 4 conn = pymysql.connect(host="xx.xx.xx.xx", port=xxxx, user="user1", passwd="passwd1", db="test") 5 # 创建游标 6 cur = conn.cursor() 7 # 定义sql 8 sql = "select * from test;" 9 10 # 执行sql语句 11 # cur.execute(sql) 12 # 执行多条语句(不常用) 13 # cur.executemany() 14 # 取所有结果 15 # cur.fetchall() 16 # 取一个结果 17 # cur.fetchone() 18 # 取10行数据 19 # cur.fetchmany(size=10) 20 # 关闭游标 21 # cur.close() 22 23 try: 24 cur.execute(sql) 25 result = cur.fetchone() 26 print(result) 27 except Exception as e: 28 raise e 29 finally: 30 cur.close() 31 conn.close()
- 创建表格
一般语法为:
create table table_name(
column_name type not null,
...... );
例如:
create table Student( stdID int not null, stdName varchar(100), age int, score int);
- 如何给用户user1授予超级用户权限
grant all privileges on *.* to 'user1'@'%' identified by '123456' with grant option;
- mysql的增删改查
1. 查询记录
select column_names from table_name where condition group by column_name1 having count(*)>1 order by column_name2 desc;
2. 插入记录
insert into table_name (id, name, age) values (1001, 'Karl', 20);
3. 删除记录
delete from table_name where condition;
4. 更改记录
update table_name set column_name=xxx where condition;
- 索引
1. 创建索引
CREATE INDEX indexName ON mytable(username(length));
2. 修改表结构(添加索引)
ALTER table tableName ADD INDEX indexName(columnName);
3. 创建表的时候直接指定
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
4. 删除索引
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) );
- mysql的其他常用语句
以下2个语句均能查看表结构,第2种显示更清晰
(1) show create table_name;
(2) desc table_name;
truncate //只清楚数据,不删除表结构
drop //删除表结构