zoukankan      html  css  js  c++  java
  • Mysql--基础(一)

    MySQL基础 

     一、数据库的操作 

            1.SQL分类:

                    DDL(数据定义语言)   :数据定义语言 - Data Definition Language,用来定义数据库的对象,如数据表、视图、索引等。常用指令:create   drop  alter  truncate

                    DML(数据操作语言):数据处理语言 - Data Manipulation Language,在数据库表中更新,增加和删除记录。常用指令:updateinsertdelete 不包含查询

                    DCL(数据控制语言) :数据控制语言Data Control Language,指用于设置用户权限和控制事务语句。常用指令:grantrevokeifelsewhilebegin transaction

                     DQL(数据查询语言) :数据查询语言Data Query Language,数据表记录的查询。常用指令:select

           2.数据库操作语言:

                   2.1 查询当前所有的数据库:                           show     databases; 

                   2.2 查看数据库的编码:                                  show     create   database     库名;        

                   

                   2.3 创建数据库

                             (1)  create   database  库名;:由于创建数据库的是后没有指定编码表,使用安装时默认的编码表

                             (2)  create   database  库名  character   set   编码表名  ;  创建数据库,使用指定的编码表

                             (3) drop    database    库名     ;    删除数据库

           (4) alter    database   库名  character    set    编码集;                 修改数据库编码集

                             (5)  use    库名  ;   切换数据库

                             (6) select   database() ;   查询当前正在使用的数据

                    2.4 数据表结构语句                                

    	  create table 表名(       
    列名 数据类型, 列名 数据类型, …… 列名 数据类型 (最后一个列不需要逗号) );
    注解:char 与vachar的区别?

    char 的性能好。 varchar可以节省空间通常时候,如果长度不固定,我们使用varchar
    
    

                          (1) show  tables  :查看该数据库的说有表

                               (2) show  create  table   表名 ;     查看建表语句

                               (3) desc  表名;查看表结构(表列)

                               (4) 主键约束:  primary    key     auto_increment   (主键自增)

                                      注解:作用设置某一个字段为主键,主键的特性是唯一(不能重复),并且不能为空

                                                 一般使用一个没有任何意义的字段,比如id作为一个主键(没有意义就需要修改)

                                                如果主键是一个int类型,还可以设置主键自增长。(在插入记录的时候可以不用设置主键,让其自动以递增的形式添加

                                                一张表只能有一个主键。            

                       create table 表名 (
    	        id int primary key auto_increment,
    	        name varchar(20),
    	        ………….
               ); 

                                (5) 唯一约束:      

              唯一约束:unique   内容不允许重复,可以为null(null不算重复)。 
              一个表里可以添加多个唯一约束。
    
              写法: 列名 类型(长度) unique
              【示例】
              create table 表名 (
    	        id int primary key auto_increment,
    	        name varchar(20) unique,
    	        ………….
              );
    
              唯一约束和主键约束的区别
              1、唯一约束可以是空(null)。 但是主键约束不能为空
              2、一张表中只能有一个主键,但是唯一约束可以有多个
    

                         (6)非空约束

                非空约束:not null 。不允许为空。 表示该列的内容不允许为空。
    
                   写法: 列名 类型(长度) not null,
                  【示例】
                   create table emp(
    	         id int primary key auto_increment,
    	         name varchar(20) unique,
    	         age int not null,			
    	         ………….
                   );                    
    

          2.5 数据表结构的修改

                        (1) 增加一列  :alter   table     表名      add   列名     类型(长度)    约束;

                        (2) 修改现有列:   alter   table     表名      modify      列名      类型    约束;

                        (3) 修改现有列名称:  alter   table    表名    change    旧列名     新列名     类型       约束;

                        (4) 删除现有列:   alter  table   表名      drop    列名

                        (5) 修改表名:  rename    table   旧表名   to    新表明

                        (6) 修改表的字符集:  alter    table     表名     character   set   编码集

                        (7) 删除表 :drop    table    表名

                        (8) 查看mysql服务的所有客户端和服务端使用的字符集:show variables like 'character%';

                        (9)  先删除表,在创建表: truncate   table     表名;

                        (10) 事物:

                                   start      transaction;

                                   commit  (成功)

                                   rollback (回滚)

                2.6、一些常用:

                           select   distinct  列名     from  表名   [ where 条件]                       去重    

                           ifnull(列名,默认值)      判断该列是否为null,如果为null,返回默认值,否则返回实际值。

                           

                            round(数值,小数的位数)                   实现四舍五入的结果

                             

      执行顺序:select …要显示的内容.. from …表名.. where  条件…. group by …分组的列 …having …分组后的条件… order by …排序
    
            select4from1..  where2.. group by ..3…having ..5… order by ...6.
    from 表名
    
    where 条件:
    	  逻辑运算符:and or not
    	  比较运算符:< > <= >= <> =
    	  在....之间:between...and...
    	  in(set):任意set集合中的一个条件成立即可
    	  is null/is not null
    	  模糊匹配:like % _
    	  
    group by 列:对列进行分组。
    
    having 条件:
    	  逻辑运算符:and or not
    	  比较运算符:< > <= >= <> =
    	  在....之间:between...and...
    	  int(set)
    	  is null/is not null
    	  模糊匹配:like % _
    	  聚合函数(sum,avg,max,min,count)
    	  别名
    	  
    order by desc/asc
    

      

                         数据备份: mysqldump -u 用户名 -p 数据库名 > 磁盘SQL文件路径

                        建表后添加外键约束: alter table 从表名称 add foreign key (外键列的名称) references 主表名称(主键)         

    建表时添加外键约束

    /*创建部门表*/ create table dept( id int primary key auto_increment, name varchar(20) ); /*创建员工表*/ create table employee( id int primary key auto_increment, name varchar(20), age int , salary double, dept_id int, foreign key (dept_id) references dept(id) );

      

         

          

                                                   

    kafka rabbitMq
  • 相关阅读:
    动态规划 简单的分割问题的解决方案钢棒
    SICP 1.20经验
    辛星一起了解下后续PHP性能功能
    汽车之家购买价格PC真正的原因阿拉丁
    可怜,的分母。
    [ACM] poj 1064 Cable master (二进制搜索)
    从Access创建Sqlite数据库
    变化的阅读程序猿自学习
    ArcEngine载入中SDE问题栅格数据
    pinyin4j新手教程
  • 原文地址:https://www.cnblogs.com/stt101517/p/10781165.html
Copyright © 2011-2022 走看看