zoukankan      html  css  js  c++  java
  • 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  撤回的意思   (从什么中撤回某种或几种权利);
     
     
     
     
     
     
    如有错误,望费心指出。 感激涕零。
  • 相关阅读:
    关于Dubbo和Spring异步注解@Async的冲突
    查看和解除Linux系统对用户使用资源的限制
    Spring 邮件发送
    分布式一致性哈希算法
    Java实现三大简单排序算法
    Java二维码生成与解码
    第三方支付之微信支付(扫码支付)
    第三方支付之支付宝(电脑网站支付)
    集成第三方开放平台
    Spring动态数据源实现读写分离
  • 原文地址:https://www.cnblogs.com/zouxiaopq/p/6150174.html
Copyright © 2011-2022 走看看