Mysql 数据库学习笔记

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;

你可能感兴趣的:(其他)