zoukankan      html  css  js  c++  java
  • MySQL

    1、sql语句规范

    sql是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。

    在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持sql。

    <1> 在数据库系统中,SQL语句不区分大小写(建议用大写) 。但字符串常量区分大小写。建议命令大写,表名库名小写;

    <2> SQL语句可单行或多行书写,以“;”结尾。关键词不能跨多行或简写。

    <3> 用空格和缩进来提高语句的可读性。子句通常位于独立行,便于编辑,提高可读性。

    SELECT * FROM tb_table
                WHERE NAME="YUAN";
    

    <4> 注释:单行注释:--

                   多行注释:/*......*/

    <5>sql语句可以折行操作

    2、数据类型

    2.1 数值类型

    2.2 无符号类型

    =========有符号和无符号tinyint==========
    #tinyint默认为有符号
    MariaDB [db1]> create table t1(x tinyint); #默认为有符号,即数字前有正负号
    MariaDB [db1]> desc t1;
    MariaDB [db1]> insert into t1 values
        -> (-129),
        -> (-128),
        -> (127),
        -> (128);
    MariaDB [db1]> select * from t1;
    +------+
    | x    |
    +------+
    | -128 | #-129存成了-128
    | -128 | #有符号,最小值为-128
    |  127 | #有符号,最大值127
    |  127 | #128存成了127
    +------+
    
    
    
    #设置无符号tinyint
    MariaDB [db1]> create table t2(x tinyint unsigned);
    MariaDB [db1]> insert into t2 values
        -> (-1),
        -> (0),
        -> (255),
        -> (256);
    MariaDB [db1]> select * from t2;
    +------+
    | x    |
    +------+
    |    0 | -1存成了0
    |    0 | #无符号,最小值为0
    |  255 | #无符号,最大值为255
    |  255 | #256存成了255
    +------+

    3、数据库操作

    1.创建数据库(在磁盘上创建一个对应的文件夹)
        create database [if not exists] db_name [character set xxx] 
        
    2.查看数据库
        show databases;查看所有数据库
        show create database db_name; 查看数据库的创建方式
    
    3.修改数据库
        alter database db_name [character set xxx] 
    
    4.删除数据库
        drop database [if exists] db_name;
        
    5.使用数据库
        切换数据库 use db_name; -- 注意:进入到某个数据库后没办法再退回之前状态,但可以通过use进行切换
        查看当前使用的数据库 select database();
    

      

    4、数据表操作

     4.1 创建表

    -- 语法
    CREATE TABLE tab_name(
                field1 type[完整性约束条件],
                field2 type,
                ...
                fieldn type
            )[character set xxx];  

    示例:

     CREATE TABLE employee(
                id int primary key auto_increment ,
                name varchar(20),
                gender bit default 1,
                birthday date,
                department varchar(20),
                salary double(8,2) unsigned,
                resume text
              );
    

    4.2 查看表信息  

    desc tab_name              查看表结构
    show columns from tab_name      查看表结构
    show tables             查看当前数据库中的所有的表
    show create table tab_name      查看当前数据库表建表语句 
    

    4.3 修改表结构

    (1)增加列(字段)
          alter table tab_name add [column] 列名 类型[完整性约束条件][first|after 字段名];
          
          #添加多个字段
          alter table users2 
                add addr varchar(20),
                add age  int first,
                add birth varchar(20) after name;
    
    (2)修改一列类型
          alter table tab_name modify 列名 类型 [完整性约束条件][first|after 字段名];
    (3)修改列名
          alter table tab_name change [column] 列名 新列名 类型 [完整性约束条件][first|after 字段名];
    4)删除一列
          alter table tab_name drop [column] 列名;
    (5)修改表名
          rename table 表名 to 新表名;
    
    (6)修该表所用的字符集    
          alter table student character set utf8;
    

    4.4 删除表  

    drop table tab_name;  

    5、表记录操作

     5.1 增加表记录

    <1>插入一条记录:
    
      insert [into] tab_name (field1,filed2,.......) values (value1,value2,.......);
        
    
    <2>插入多条记录:
      insert [into] tab_name (field1,filed2,.......) values (value1,value2,.......),
                                            (value1,value2,.......), 
                                 ...                               ;
    
    <3>set插入:
      insert [into] tab_name set 字段名=值  

    示例:

    INSERT employee (name,gender,birthday,salary,department) VALUES
                          ("alex",1,"1985-12-12",8000,"保洁部"),
                          ("egon",1,"1987-08-08",5000,"保安部"),
                          ("yuan",1,"1990-06-06",20000,"教学部");
    
    
    INSERT employee VALUES (8,"女神",0,"1992-02-12","教学部",7000,"");
    
    INSERT employee SET name="wusir",birthday="1990-11-11";
    

    5.2 修改表记录

    update tab_name set field1=value1,field2=value2,......[where 语句]  

    示例:

    update employee_new set birthday="1989-10-24" WHERE id=1;
    
    --- 将yuan的薪水在原有基础上增加1000元。
    update employee_new set salary=salary+4000 where name='yuan';
    

    5.3 删除表记录

    方式1:
    delete from tab_name [where ....]
    
    方式2:
    truncate table emp_new;
    
                /*    
                如果不跟where语句则删除整张表中的数据
                delete只能用来删除一行记录
                delete语句只能删除表中的内容,不能删除表本身,想要删除表,用drop
                TRUNCATE TABLE也可以删除表中的所有数据,词语句首先摧毁表,再新建表。此种方式删除的数据不能在
                事务中恢复。
                */  

    示例:

    删除表中名称为’alex’的记录。
       delete from employee_new where name='alex';
    删除表中所有记录。
       delete from employee_new;
    
    注意auto_increment没有被重置:alter table employee auto_increment=1;

    6、查询表记录

    select  * from tab_name   : 显示所有的记录的所有字段信息
    
    
    
    select [distinct] filed,filed2,.....   from tab_name
                                 
    							   where 子句
    							   group by 分组     key  :  分组条件
    							   having 子句  : 过滤
    							   order by
    							   limit
    
    
    查询 每一个省份的平均工资
         select city,avg(salary) from emp group by city;
    
    查询 平均工资大于8000的省份的名称
    
         select city,avg(salary) from emp group by city having avg(salary) > 8000
    

    7、多表查询

    内连接查询:
    
    select * from emp inner join dep on emp.dep_id=dep.id;
    
    
    左外连接查询:
    
    select * from emp left join dep on emp.dep_id=dep.id;
    

      

    8、完整约束

    主键约束: 
    
           primary key    :  非空(not null )且 唯一 (unique)  
    
    
    外键约束(关联字段):
    

      

  • 相关阅读:
    Windows Phone7官方更新 增加复制粘贴
    使Apache(Linux)支持Silverlight
    WPF触摸屏项目案例(放置在奔驰公司触摸屏展厅)
    项目开发项目管理(转)
    诺基亚WP7手机界面曝光
    Windows 8十大传言:令苹果坐立不安
    如何为 iPad 打造速度超快的 HTML5 软件
    Silverlight5.0正式发布附下载地址
    我们的案例请访问我们团队官网http://Silverlighter.net
    【转】NTFS3G的安装和配置
  • 原文地址:https://www.cnblogs.com/junxun/p/7524621.html
Copyright © 2011-2022 走看看