Linux初学5-2 连接mysql
1、连接MySQL服务器
?本机既有服务器端也有客户端
?本机通过客户端连接到另一台服务器
?本机没有任何MySQL软件,连接到另一台服务器端
2、连接服务器的命令
?Windows系统?:mysql -h hostname -u username -ppassword databasename
?Linux系统?:mysql -h hostname -u username -ppassword databasename
?退出命令?:quit
3、创建并使用第一个数据库
?设置密码:set password=password('password')
?创建数据库:create database db_name
?给用户分配数据库:grant all on db_name.* to user_name@localhost identified by password
?使用数据库?:mysql -u user_name -ppassword db_name
??????? use database_name
4、查询表
?显示当前数据库中的表:show tables
?显示指定表的结构:decribe table_name
5、列数据类型:
?分为数字型、字符串型和日期
?1、数字型:分为整形和浮点型,可以有两个选项:unsigned(无符号,只存储正数)和zerofill(用0填充而不是空格)
?范例:create table a (id int zerofill);
?数字型:以字串的形式存储,decima/numeric
?小数型:float/double
?整数型:int bigint tinyint
?2、字符串型
?char varchar等
?3、日期型
?datetime timestamp等
?4、枚举型
?enum('男','女')
6、创建表
?create table tab_name(column_define);
?关系的实现:(键和约束)主键:primary key 惟一:unique 非空:not null 检查:check 外键:foreign key
?约束在创建表的时候定义约束
?通过修改表实现约束
?create table emp(
?empno int primary key,
?ename varchar(10) not null,
?sal double(6,2),
?dno int foreign key references dept(dno));
?通过修改表实现约束:
?alter table tab_name
?add constraint? con_name con_type(col_name) define;
7、数据操作
?插入数据:insert into table_name(col_list) values(values_list);
??? insert into table_name(col_list) values(values_list),(values_list),...
?删除记录:delete
?更新记录:update
8、修改表:
?添加列:add
?修改列:change
?重命名表:rename
?删除列:drop
9、简单数据检索:
?列选取:* col_list
?列别名:as
?行过滤:like % _ and not or
?排序:order by desc asc limit n1 n2 n1:偏移量 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、高级查询:
?分组:group by
?连接:join
??等值连接和不等值连接
??外连接
12、安全管理
?grant privieges on what to user identified by password
?1、谁连接?——用户名
?2、在那里连接——@String:String主机名或IP或通配符
?3、什么样的权限——权限名字
?4、是不是委派——此用户是不是可以把自己的权限分配给别人
?grant all on *.* to abc@'%' identified by 'password' with grant option;
?grant select on abc.emp to hygj@'%' identified by 'password' with grant option;