MySQL——(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




     


时间: 2024-10-13 05:11:49

MySQL——(SQL语句)的相关文章

mysql sql语句分析

SELECT     a.id    ,b.order_id,b.attr  FROM    tourist_order a     LEFT JOIN order_attr b     ON a.id = b.order_id        AND b.attr='order_status'    WHERE     b.order_id IS NULL    AND a.create_type!=19    AND a.added_time>='2014-01-01'    AND a.si

mysql sql语句大全

1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4.说明:创建新表 cr

第04章 mysql SQL语句

2015-10-24 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] 范德兰斯.MySQL开发者SQL权威指南 [M].北京:机械工业出版社,2008 [4] Forta.MySQL必知必会 [M].北京:人民邮电出版社,2009 [5] mysql sql语句大全 [6] MySQL 最基本的SQL语法/语句 [7]

最全mysql sql语句大全

mysql sql语句大全 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始 备份 BACKUP DATABASE pubs TO testBac

快速学习MySQL SQL语句

须知: SQL语言:结构化查询语言,是关系型数据库查询语言的标准,不同的数据库虽然有自己私有扩展,但关键词都支持:(select.update.delete.insert.where) SQL语句分类:像Oracle.MSSQL都是通用的 DDL:数据定义语言(create.alter.drop.rename) DML:数据库维护语言(select.insert.update.delete) DCL:数据库控制语言,权限(Grant.revoke) TCL:事物型语言(commt.sarepqi

MYSQL SQL语句技巧初探(一)

MYSQL SQL语句技巧初探(一) 本文是我最近了解到的sql某些方法()组合实现一些功能的总结以后还会更新: rand与rand(n)实现提取随机行及order by原理的探讨. Bit_and,bit_or,bit_count等位操作方法实现统计功能. rand与rand(n)提取 使用order by rand(n)配合limit n可以提起相应的n个随机样本. 如:select  *  from student grade='2' order by rand() limit 5 随机提

MySQL sql语句执行顺序

sql语句select语句查询顺序 (7)     SELECT (8)     DISTINCT <select_list> (1)     FROM <left_table> (3)     <join_type> JOIN <right_table> (2)     ON <join_condition> (4)     WHERE <where_condition> (5)     GROUP BY <group_by_

mysql sql语句大全【转】

mysql教程 ■  在DOS命令行启动MYSQL服务: net start mysql ■在DOS命令行停止MYSQL服务: net stop mysql ■查看被监听的端口: netstat –na | findstr 3306 findstr用于查找后面的端口是否存在. 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份数据的 device

Mysql sql语句回顾2 --正则表达式

在这里简单回顾一下mysql在过滤数据的时候正则表达式的用法,主要是每个用法给一个例子,或者加一些简短的说明. 这里要提前说一下,使用正则表达式过滤数据是用 REGEXP关键字 基本字符匹配: SELECT prod_name FROM products WHERE prod_name REGEXP '1000': 该查询语句的意思是prod_name字段中包含1000的数据,只要值中的任何部位包含1000都可以 SELECT prod_name FROM products WHERE prod

MySQL SQL语句

关系数据库: MySql ,Oracle, sql server , db2 ,sqlite,非关系数据库: redis mongodb SQL语句:结构化语句 规范: 1.不区分大小写(命令建议大写) 2.以分号作为结束符号 3 注释 -- /* */ 数据库的操作 SHOW DATABASES; --查看所有的数据库 CREATE DATABASE database_name --创建数据库 SHOW CREATE DATABASE database_name--查看创建数据库信息 DROP