mysql语句入门

show databases;      展示可以用的数据库;
use employees;        进入数据库;
show tables;             展示可用的列表。
 
show columns
from employees;        展示表的列。
 
select distinct last_name
from employees
order by last_name
limit 15;                             检索名字  按升序 只显示不同的列(distinct
 
select last_name
from employees 
order by last_name desc           检索名字  以降序显示(desc)   升序是asc  因为系统默认不加参数是升序 所以用处不是特别大。
 
 
select *
from employees;           查询所有行和列;
 
select *
from employees
limit 5;                查询表的所有数据,但是只显示五行、
 
select emp_no,name,birth_date
from employees
limit 5;                   检索多个列  并且只显示5行。
 
select employees.emp_no
from employees.employees
limit 5;                                          完全指定检索。直接从employees 里面指定表  和表里面的列。
 
 
select emp_no,last_name
from employees
where emp_no = 11002;      根据指定的条件搜索。
 
select emp_no,last_name
from employees
where last_name = 'zouxiaoxiao';         检索单个非数值的字符,要加  ' 引号;
 
select emp_no,last_name
from employees
where emp_no < 10004;                     检索条件为某个范围。
{emp_no小于10004}
 
select emp_no,last_name
from employees
where emp_no != 10004;                
{emp_no 不等于10004 也可以用  emp _no  <> 10004 来表示}
 
 
select emp_no,last_name
from employees
where emp_no between 10002 and 10009;           检索某个区域、
 
select emp_no,last_name
from employees
where emp_no is null;                                         检索emp_no 为空值的数据、
 
 
select emp_no,last_name
from employees
where emp_no =1002 and last_name = 'xiao' ;             and 的用法   条件同时成立;
 
 
select emp_no,last_name
from employees
where emp_no =1002 or last_name = 'xiao';                 or  的用法  条件有一个成立;
   
 
select emp_no,last_name
from employees
where emp_no in (1002,1003);                                       检索在in    后面的指定属性范围的数据   与or  类似
 
 
select emp_no,last_name
from employees
where emp_no not in (1002,1004);                       加not  表示不在这一范围内的数据;
 
 
select emp_no,last_name
from employees
where last_name like 'zou%';                                         检索条件是以zou 开头的所有数据   %是一个通配符
 
                                   '%xiao%'                                     检索条件是属性中间含有这个xiao的字符的;
                                   'x%x'                                           检索条件是属性两头是x 的所有数据;
                                   
 
select emp_no,last_name
from employees
where emp_no like '_ou';                                               下划线_也是通配符 但是只 匹配单个字符;
                                '%ou'                                                        不仅仅是单个字符  也可以是多个字符;
 
 
 
 
select emp_no,last_name
from employees
where emp_no regexp 'xou';                                   regexp 后面跟的内容则是正则表达式,表示含xou文本的所有属性。
 
 
 
select emp_no,last_name
from employees
where emp_no regexp '10002|10004' ;                  regexp  后面跟的正则表达示 的意思是 匹配文本含10002或者10004的所有属性;
 
 
 
select emp_no,last_name
from employees
where emp_no regexp '10002|10004|10006' ;        '    |  ' 可以多个一起使用
 
 
select emp_no,last_name
from employees
where last_name regexp [xzi]xiao;                                 [    ] 中间的xzi表示匹配的是x或z或i  类似or
                                         'x|z|i'
                                         [^xzi]                                       [^xzi]   表示  非xzi的数据
   
                                      [0123456789]  =  [0-9]               可以规范一个范围
                                          [a-z]                                        表示任何一个字母
 
select emp_no,last_name
from employees
where emp_no regexp '//-';                                            查找特殊字符如“. - ”等等   要在前面加\\  反斜线
 
 
select birth_date,last_name 
 from employees
 where birth_date regexp '1952-04-1[1-4]';
 
 
 
select birth_date,last_name 
 from employees 
where birth_date regexp '[[:digit:]]{5}'              等于'[0-9][0-9][0-9][0-9][0-9]'    
 
 
select concat (birth_date,' (',last_name,') ')
from employees
limit 10;    
 
 
 
创建过程:                                                                 
 
 
create database test1;     创建一个数据库;
drop database test1;        删除一个数据库;
create table emp
 (ename varchar(10);hiredate date,sal decimal (10,2),deptno int(2) );   创建表,并添加属性、各个列。
 
desc emp;     查看表定义=======show columns from emp;
 
alter table emp modify ename varchar(20);     修改属性;
 
alter table emp add column age int(3);            增加列,
 
alter table emp drop column age;                            删除列;
 
alter table emp change age age1 int(4);                  更改列名 和属性、
 
alter table emp add column birth date after ename;     增加列,并放在特定位置
 
alter table emp modify age1 int(4) first;                         移动列。(列名后加属性)
 
alter table emp rename emp1;                                      更改表名
 
 
 
insert into emp (ename,birthdate,asl)
values ('   ','   ','   ');                                             在emp 中加入记录
 
insert into emp values(a,'a1'),(b,'b1');  同时插入多条记录。
 
update emp set sal=9999 where ename='xiaoqun';       更新记录;where 条件;
 
select dept_no,count(1)
 from dept_emp 
group by dept_no;                      分类聚合    分类计算各部分的总和;
 
 
select dept_no,count(1)
from dept_emp
group by dept_no with rollup;            分类计算各个总和的基础上,还计算总和,
 
select dept_no,count(1)
from dept_emp
group by dept_no
having count(1)>1000;                                   查找各部门人数的总和大于1000的各个部门。
 
 
select sum(salary),max(salary),min(salary) 
from salaries;                                                            计算总和   最大   最小。
 
select last_name,dept_no
from employees,dept_emp 
where employees.emp_no=dept_emp.emp_no
limit 10;                                                                        内连接查询。
 
 
select emp_no from employees
union all 
select emp_no from dept_emp;                                 union all 的使用  显示两个结果的集合
 
select emp_no from employees
union 
select emp_no from dept_emp;                                union 的使用 显示两个结果集合且去掉重复项  类似 distinct
 
 
 






 
重要知识点:
                ~] # mysql -uroot
                 root 用户的mysql登录方式    '-uroot'可以不加  因为默认是root用户
 
 
                mysql 中创建数据库用户并授权:
                        mysql>  grant select,insert on employees.* to 'xiaozou'@'localhost' identified by '112233';   
                        #grant  授权的意思    identfied  被识别的意思;
                                                    
                 普通用户的登录命令         ~]#  mysql -uxiaozou -p112233
           
去除用户的select和insert的权利:
  mysql> revoke insert,select on employees.* from'xiaozou'@'localhost'                  
                          #revoke  撤回的意思   (从什么中撤回某种或几种权利);
 
 
 
 
 
 
posted @ 2016-12-09 16:41  后来者。  阅读(337)  评论(0编辑  收藏  举报