深入浅出mysql之基础篇

深入浅出mysql之基础篇

mysql的安装

windows linux mac 安装会有不同

数据库的三大范式

1.第一范式(确保每列保持原子性)

第一范式是最基本的范式。如果数据库表中的所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。

2.第二范式(确保表中的每列都和主键相关)

第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

3.第三范式(确保每列都和主键列直接相关,而不是间接相关)

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。

sql的基础

sql语言分类

DDL:数据定义语句 create drop alter
DML:数据操纵语句 insert delete update select
DCL:数据控制语句 grant revoke

DLL语句

create databases dbname;
show database;
use dbname;
show tables;
drop database dbname;
drop dbname tabname;

创建表:
create  table tabname ( colunm_name type constraints,)
drop table tabname
修改表 
    alter table modify coluname_name type
    alter table add column coluname_name type
    alter table tabname drop column col_name
    alter table tabname chage col col2 type

alter table tabname  rename new_tabname

desc tabname;

DML 语句

 insert into table(field1,field2)values(value1,value2);
 update tabname set field1=xxx where filed=xxx
 select * from tabname
 delete from tabname where field1=xxx
 distinct 
 where
 order by 
 limit
 group by 
 with rollup--再汇总
 having
 sum() max() min()
 join
 左连接--包含左边的所有记录
 有连接--包含右边的所有记录
 子查询 in,not in,=,!=,exists,not exists
 union all 联合所有
 union 联合去重

DCL 语句

分配权限
grant select,insert on dbname.* to 'z1'@'locahost' identified '123'

收回权限
revoke

帮助

?xx

mysql支持的数据类型

mysql支持的类型

tinyint 
smallint
mediumint
int,integer
bigint
float
double
dec(m,d)
decimal(m,d)
bit(m)
auto_increment

时间和日期

date 日期
datetime 1000----9999年
timestamp 到2038年的某一刻
time 时间
year 年

时区

查看 show variables like 'time_%';
修改时区set time_zone='+9:00'

字符串类型

 char 0-255
 varchar  0-65535
 tinyblob 255
 blob 65535
 mediublob  巨大
 longblob 巨大
 tinytext  255
 text  65535
 mediumtext 巨大
 longtext巨大
 varbinay 0-M
 binary 0-m

char和varchar

char固定长度
varchar变长

varbinay和binary

二进制字符串

enum 枚举型 最多运行65535个成员

set 类型 0-64个成员

mysql中的运算符

算术运算符

+ - * / %

比较运算符

= <> !=  <=> <  <= > > =
between in 
is nul , is not null ,like,regexp,rlike

逻辑运算符

not 或! ,and 或&& ,or或|| ,xor异或

位运算符

& ! ^ ~ >> <<

运算符的优先级

:=
|| or xor
&& and
not 
between,case,when else
比较运算符
|
&
<<,>>
-,+
*,/,div,%,mod
^
-
!

常用的函数

函数名字和功能笔记一致,我也就不再注释~~

字符串函数

concat
insert
lower
upper
left
right
lpad
rpad
ltrim
rtrim
repleat
replace
strcmp
trim
substring

数值函数

abs
cell
floor
mod
rand
round
truncate

日期函数

curdate
curtime
time
unix_timestamp
from_unixtime
week
year
hour
minute
monthname
date_format
date_add
datediff

流程函数

if(value,t,f)如果value真,返回t,否则返回f
ifnull(v1,v2) 如果v1不为空返回v1否则返回v2
case when v1 then result1 else default end 如果v1真则result1 否则default
case expr when v1 then re1 else default end 如果expr等于v1则re1 否则default

其他常用的函数
datebase()
version()
user()
inet_aton()
inet_ntoa()
password()
md5()

图形工具的使用

mysql administrator

mysql query brower

php admin

数据库范式参考博客

http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
http://baike.baidu.com/link?url=1O1_PY90E_pmKqhoKaeqRfMo6c5N8xtn_R8bUkTyYFrCVmoPsQER2ZAS4CoFCKnbQpQQpmJibLYMSay4ryL14zCANxd9SFrJjsMNBIYkEU_VhWGDm_RLqxi5zR3ym4CKpZH7EtSqfIpSIKI7xr5OQK

你可能感兴趣的:(数据库,读书笔记,mysql的使用)