码迷,mamicode.com
首页 > 数据库 > 详细

MySQL——(SQL语句)

时间:2017-07-10 22:07:50      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:sql

关系型数据库设计范式:

    第一范式:当关系模式R的每个关系属性都是不可分的数据项,那么就成R是第一范式的模式(1NF)

    简单说法:字段是原子性的

    第二范式:党关系模式R是2NF,且关系模式R(U,F)中的所有非主属性对任何候选关键字不存在传递依赖,则称关系R是属于第三范式

    简单说法:存在可用主键

    第三模式:当关系模式R是2NF,且关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递依赖,则称关系R是属于第三方范式

    简单说法:任何表都不应该有依赖于其他表非主键的字段

数据库组件:

    数据库,表,索引,视图,用户,权限

    编程接触的组件:(触发器,存储过程,存储函数,事件调度器)

mysql安装完成之后的安全配置(mysql_secure_installation:一键配置脚本)

    1、删除mysql匿名用户

    2、为所有root用户设置密码

    3、关闭主机名反解功能

SQL语句类型:

    DDL:数据库定义语言

        create,drop,alter

    DML:数据库操作语言

        insert,delete,update,select

    DCL:数据控制语言

        grant,revoke

常用SQL语句:

    create:

        CREATE DATABASE    #创建数据库

        CREATE DATABASE CHARACTER SET charset_name db_name;    #创建数据库并设置字符编码

        CREATE TABLE table_name(字段名,字段数据类型,约束条件)

    #创建表

        数据类型:

            整形:int

                  tinyint     #1byte

                  smallint    #2byte

                  mediumint   #3byte

                  int         #4byte

                  bigint      #8byte

            字符型:

                char        #固定长度字符型(不区分大小写)

                varchar     #可变长度字符型(不区分大小写)

                binary      #固定长度字符型(区分大小写)

                varbinary   #可变长度字符型(区分大小写)

            约束条件:

                NOT NULL        #不允许为空

                DEFAYULT        #默认值

                PRIMARY KEY     #主键

                UNIQUE          #唯一键

                unsigned        #无符号(适用于int类型)

                auto_increment  #自增,需要定义在一个键中(适用于int类型)

        CREATE INDEX

            #创建索引,索引是特殊的数据结构,用于搜索加速,一般定义在查找时作为查找条件的字段

    例:create table test (id int primary key auto_increment, name varchar(50));

        mycli:功能更强大的mysql客户端,使用python开发的

        #mysql客户端工具


使用实例:

    show global variables;

    #查看全局参数,有的参数能够修改并立即生效,有的需要修改配置文件

    show session variables;    #mysql的当前会话参数

    show character set;        #查看支持的字符集

    show collation;            #查看支持的排序规则

    show engines;              #查看支持的存储引擎

    show table status like ‘user‘\G                            #查看表状态

    show global variables like ‘%server%‘;    #数据库id

    show master logs;          #查看二进制日志

    show master status;        #查看主服务器状态

    show grants for ‘dj‘@‘localhost‘;    #查看di用户授权信息

    show index from mysql.user;    #查看索引

    show databases;            #查看数据库

    show tables;               #查看数据库的表

    desc table_name             #查看表结构


    select 字段名 from 表名 [where 查询条件]    #查看表中内容

    select * from user\G;        #查看用户的详细信息

    select database();            #查看默认数据库

    select * from test where id>2 and id<4;

    #查询test表中id大于2小于4的数据

        where条件:

            > < >=    <=  == !=  and  or  not

            like: 模糊查询   rlike基于正则表达式的模糊查询

    

    drop database 数据库名;        #删除数据库

    drop table 表名;               #删除指定表

    drop user ‘用户名‘@‘主机‘       #删除用户


    update 表名 set 更改的值 where 条件匹配    #修改表中的数据

    update test set name=‘liuxiao‘ where id=2;


    delete from 表名 where 条件匹配    #删除条件匹配的数据

    delete from test where id=2;


    insert into 表名 (字段1,字段2) values(字段1的值,字段2的值)

    insert into test(name) values(‘xiaoqiao‘);

    insert into 表名 (字段1,字段2) select语句

    #插入通过select查询得到的数据

    insert into user (user,host,passwd) select User,Host,

Password from mysql.user;

    grant 权限列表 on 数据库.表 to ‘用户名‘@‘授权主机‘ identified by ‘密码‘                     #授权用户

    revoke drop on 数据库.表 from ‘用户名‘@‘授权主机‘;                                     #撤销授权

    altar table 表名 add 字段名 字符型 #添加字段

    alter table test ip varchar;

    altar table 表名 change 源名 修改后的名 字符型 #更改字段

    alter table test change ip sid int;

    altar table 表名 drop 字段名     #删除字段

    alter table test drop sid;

    set global 变量名=值;     #设置全局参数

    set session 变量名=值;             #设置当前会话参数

    use 数据库名;     #指定默认数据库

    create index 索引名 on 表名;     #创建索引

    flush privileges;     #重读授权表


创建表的三种方式:

    1、直接创建

    create teble 表名 (字段名1 字段类型,字段名2 字段类型)

    2、复制表和表中的数据

    create teble  表名 select语句

        例:create teble  test select User,Host,Password from mysql.user;

    3、复制表结构

    create teble tbl_name like 模板表

例:create teble test2 LIKE test





     


本文出自 “1436446838” 博客,请务必保留此出处http://1436446838.blog.51cto.com/11663123/1946048

MySQL——(SQL语句)

标签:sql

原文地址:http://1436446838.blog.51cto.com/11663123/1946048

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!