mahy 2009-02-09
1、连接MySQL服务器
本机既有服务器端也有客户端
本机通过客户端连接到另一台服务器
本机没有任何MySQL软件,连接到另一台服务器端
2、连接服务器的命令
Windows系统:mysql-hhostname-uusername-ppassworddatabasename
Linux系统:mysql-hhostname-uusername-ppassworddatabasename
退出命令:quit
3、创建并使用第一个数据库
设置密码:setpassword=password('password')
创建数据库:createdatabasedb_name
给用户分配数据库:grantallondb_name.*touser_name@localhostidentifiedbypassword
使用数据库:mysql-uuser_name-ppassworddb_name
usedatabase_name
4、查询表
显示当前数据库中的表:showtables
显示指定表的结构:decribetable_name
5、列数据类型:
分为数字型、字符串型和日期
1、数字型:分为整形和浮点型,可以有两个选项:unsigned(无符号,只存储正数)和zerofill(用0填充而不是空格)
范例:createtablea(idintzerofill);
数字型:以字串的形式存储,decima/numeric
小数型:float/double
整数型:intbiginttinyint
2、字符串型
charvarchar等
3、日期型
datetimetimestamp等
4、枚举型
enum('男','女')
6、创建表
createtabletab_name(column_define);
关系的实现:(键和约束)主键:primarykey惟一:unique非空:notnull检查:check外键:foreignkey
约束在创建表的时候定义约束
通过修改表实现约束
createtableemp(
empnointprimarykey,
enamevarchar(10)notnull,
saldouble(6,2),
dnointforeignkeyreferencesdept(dno));
通过修改表实现约束:
altertabletab_name
addconstraintcon_namecon_type(col_name)define;
7、数据操作
插入数据:insertintotable_name(col_list)values(values_list);
insertintotable_name(col_list)values(values_list),(values_list),...
删除记录:delete
更新记录:update
8、修改表:
添加列:add
修改列:change
重命名表:rename
删除列:drop
9、简单数据检索:
列选取:*col_list
列别名:as
行过滤:like%_andnotor
排序:orderbydescasclimitn1n2n1:偏移量n2:行数
汇总:最大值max,最小值min,计数count,消重distinct,平均avg,求和sum
10、日期数据处理
日期标准格式:yyyy-mm-dd,日期用‘’引起
日期格式:date_format(date,'%m/%d/%y')
日期函数:
当前日期:now()current_date
取时间的某个部分:year()month()dayofmonth()dayofyear()
11、高级查询:
分组:groupby
连接:join
等值连接和不等值连接
外连接
12、安全管理
grantpriviegesonwhattouseridentifiedbypassword
1、谁连接——用户名
2、在那里连接——@String:String主机名或IP或通配符
3、什么样的权限——权限名字
4、是不是委派——此用户是不是可以把自己的权限分配给别人
grantallon*.*toabc@'%'identifiedby'password'withgrantoption;
grantselectonabc.emptohygj@'%'identifiedby'password'withgrantoption;