Mysql 数据库 Linux 版本学习笔记
最近在阿里云花92块钱买了一台最低配置的学生主机(一年),感觉赚到了,所以准备利用这个服务器好好学习一下有关数据库和Linux的内容,我用的是Ubuntu。
下面是我学习MySQL过程中的一些笔记,记录在此便以后查询和以后回顾自己的学习路径。
常用的一些SQL命令及解释
命令 | 操作说明 |
---|---|
mysql -u root -p passwd | 登录数据库 |
show databases; | 显示所有中的数据库 |
create database firstDB;(数据库名字) | 创建数据库 |
use firstDB; | 进入一个数据库 |
show tables; | 显示上面进入的数据库中的所有表 |
create table table_first (id varchar(20),name varchar(20)); | 创建一个有两列的表 |
show create table table_first; | 显示创建table_first表的sql语句 |
desc(describe) table_first;(表名) | 显示这个表中的字段和描述信息 |
insert into table_first(表名) values (“001”,“mike”); | 向表中插入数据 |
select * from table_first(表名); | 从表中查询数据 |
select * from table_first(表名) where id=“002”(表中的字段来添加限制信息) | 条件查询,即从表table_first中查询id=002的用户 |
select * from first_table where name like “%wu%” | 从表first_table中查询名字包括"wu"字符的用户 |
select * from first_table where name like “%wu%” limit 3 | 从表first_table中查询名字包括"wu"字符的用户,并且只显示前面的三个用户 |
grant all on firstDB.* to user_first@“localhost” identified by “123”; | 授权读写权限给user_first用户本地访问这个数据库 密码是123 |
drop database myDB(数据库名字) | 删除一个数据库 |
grant select on firstDB.* to user_select @‘localhost’ identified by ‘123’ | 给user_select用户授予可以查询的权限,可以从本地登录,密码是123 |
drop table first_table; | 删除这个表 |
mysql -u root -p ****(passwd) firstDB > firstDB.sql | 导出或者备份firstDB这个数据库 |
delete from table_first where id=‘002’; | 删除Id等于002的用户 |
show variables like ‘%char%’ | 查看数据库字符集 |
mysqladmin -u 用户名 -p 旧密码 password 新密码 | 修改用户密码 |
select database(); | 显示当前连接的服务器 |
select version(); | 显示当前服务器的版本 |
select now(); | 显示当前的时间 |
select user(); | 显示当前的用户 |
alter database test(数据库名) character set latin1; | 修改数据库test的编码格式为拉丁语 |
use test;show variables like ‘character%’; | 查看数据库test的编码格式 |
数据库中的数据类型
- 数值类型—整型,浮点型,定点型;
- 日期时间类型
- 字符串类型
整型
数据类型 | 存储范围 | 字节 |
---|---|---|
TINYINT | 有符号:-128到127无符号:0到255 | 1 |
SMALLINT | 有符号:-32768到32767无符号:0到65535 | 2 |
MEDIUMINT | 有符号:-8388608到8388607无符号:0到16777215 | 3 |
INT | 有符号:-2147483648到2147483647无符号:0到4294967295 | 4 |
BIGINT | 有符号:-9223372036854到9223372036853无符号:0到(2^64)-1 | 8 |
MySQL中用浮点数和定点数来表示小数
数据类型 | 存储范围 |
---|---|
浮点数类型 | FLOAT[(M,D)]四个字节范围允许的值是:-3.402823466E+38到-1.175494351E-38,和0到10175494351E-38到3.402823466E+38; |
定点数类型 | DECIMAL[(M,D)]M是精度,(=整数位小数位),D是标度,(小数点后的位数) |
浮点型在数据库中存放的是近似值,而定点型在数据库中存放的是精确值
日期时间类型
列类型 | 字节数 | 取值范围 | 表示形式 |
---|---|---|---|
YEAR | 1 | 1901~2155 | YYYY |
TIME | 3 | -838:59:59~838:59:59 | HH:MM:SS |
DATE | 4 | 1000-01-01~9999-12-31 | |
DATETIME | 8 | 1000-01-01~9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS |
TIMESTAMP | 4 | 19700101080001~20380119111407 | YYYY-MM-DD HH:MM:SS |
字符类型
列类型 | 存储需求 |
---|---|
CHAR(M) | M个字节,0<=M<=255 |
VARCHAR(M | L+1个字节,其中L<=M且0<=M<=265535 |
TINYTEXT | 0~255 |
TEXT | 0~65535 |
MEDIUMTEXT | 0~(2^24)-1 |
LONGTEXT | 0~(2^32)-1 |
ENUM(‘value1’,‘value2’,…… | 取决于枚举值的个数(最多65535个),例如:性别 enum(‘男’.‘女’) |
SET(‘value1’,‘value2’……) | 取决于set成员的数目(最多64个成员) |
添加一个列
alter table reader add isbn varchar(20);//,默认会添加在最后的列
alter table reader add isbn varchar first;//会添加在第一个列的前面,即取代首列
alter table reader add isbn varchar after name;//添加在nam这个列的后面
更改列名
alter table reader change test first char(10);//把列名test改成first
修改列的数据类型
//把表reader中的first列的数据类型改成char(20);
alter table reader modify first char(20);
修改列的排列位置
//把name列移到第一个位置
alter table reader modify name varchar(10) first;
//把first列移到name列的后面
alter table reader modify fisrt char(20) after name;
删除一个列
//删除名位test的列
alter table reader drop test;
更改表名
//把表reader的表名改成readerinfo;
alter table reader rename to readerinfo;