mysql基础的学习笔记
cmd操作mysql方式:
cmd登录数据库方法:(方法一二实用于在电脑里配置过数据库相关的环境变量,否则必须在cmd里进入到数据库的bin目录):
1).mysql -u root -p
显示Enter password输入你登录数据库时的密码。
修改数据库密码
旧密码:A 新密码 B:
mysqladmin -uroot -pA password 'B'
刷新权限:
flush priviliges;
查看数据库(表)的字符集编码:
show create(表) database 数据库名;
临时修改数据库的字符集:
SET GLOBAL character_set_server=utf8;
下面是一些创建数据库和表重要的指令。
(1).创建数据库:creat database 数据库名;
使用数据库:use 数据库名;
(2).显示你创建的数据库(已供你选择你要使用的数据库):show databases;
(3).删除数据库(谨慎使用此指令):drop database 数据库名;
(4).展示表的内容:show tables;
(5). 重命表名:alter table 原表名 rename to 新表名;
(6).添加字段:alter table 表名 add 字段名 字段类型 字段属性;
(7).修改字段名:alter table 字段名 change 新字段名;
(8).删除字段: alter table 表名 drop 字段名;
(9).删除表:drop table 表名;
在navicat下对表的一些操作:
show create table 表名(可以以代码格式查看你的表);
在设置time 的时候 想让它默认当前时间,和每个表必须有一个主键,如果你没有什么能设置主键的字段,就用auto_increment自增列为主键。该字段属性也要添加primary key
建表:
create table 表名(
字段名 数据类型 约束,
.............
);
建表重要约束:
主键: primary key,外键: foreign key,自增字段(适用于主键不确定的情况下):auto_increment,设置唯一(和主键类似):unique,非空:not null,默认值:default.
一些数据库不支持列级外键,所以建议建表使用行级外键.
行级外键创建方法:
foreign key 该表外键字段名 references 表名(主键字段名);
对表添加字段:
alter table 表名 add column 列名 约束条件;
对表已有字段添加外键约束:
alter table 表名 add foreign key (字段名) references 外表表名(外表主键名)
向表插入数据:
insert into 表名(字段名1,字段名2.......) values(数据1,数据2........);
删除表数据:
delete from 表名
where 条件;
查询表数据:
select 字段1,字段2..... from 表名
where 条件;
修改表数据:
update 表名
set 字段名=值
where 条件;
------创建视图--------------------
create view 视图名 as
slelect 列名1,列名2 ...from 表名
-------------------------------------
--------创建函数-----------------
create function 函数名(形参1,形参2......)
returns 返回值类型
begin
函数体
retrun 返回值
end
执行:select 函数名(实参1,实参2...........)
--------------------------------------
-----------函数if语句-------------
if(条件块) then 执行体
else if(条件块) then 执行体
......................
else 执行体
end if
--------------------------------------
-------------函数case语句------
case
when 条件块 then 执行体
when 条件块 then 执行体
....
end case
--------------------------------------
-----------存储过程---------------
create procedure 存储名(形参1,形参2....)
begin
程序体
end
参数类型:
in out inout
执行:call 存储名(实参1,实参2..................)
-------------------------------------
mysql数据类型:
char[length] length字节 定长字段,长度为0-255个字节
varchar[length] string 长度+1字节 变长字段,在mysql5.03以前,长度为0-255个字节,在5.0.3以后,最大长度为65535字节。一个utf8字符占3个字节、一个gbk字符占两个字节。
tinytext string 长度+1字节 字符串,长度为0-255个字节
text string 长度+2字节 字符串,最大长度为0-65535个字节
mediumtext string长 度+3字节 字符串,最大长度为16777215个字节
longtext string 长度+4字节 字符串,最大长度为4194967295个字节
tinyint[length] 1字节 范围:-128~127或0~255
smallint[length] 2字节
mediumint[length] 3字节
int[length] 4字节
bigint[length] 8字节
float 4字节
double[length,decimals] 8字节 运行固定的小数点
decimal[length,decimals] length+1字节或length+2字节
date 3字节 采用YYYY-MM-DD格式
datetime 8字节 采用YYYY-MM-DD HH:mm:SS格式
timestamp 4字节 采用YYYYMMDDHHmmSS格式
time 3字节 采用HH:MM:SS格式
enum 1或2字节 枚举类型
set 1、2、3、4或8字节 与enum一样,只不过每一列可以具有多个可能的值
blob 是text的一个变体。允许存储二进制文件,还可用于某些加密数据。