(转载)常用的Mysql数据库操作语句大全【上海时时

关系型数据库

事务transaction:

  三个操作被看成二个安然无事对待

• ACID:
     A :原子性
     C :一致性
     I :隔离性
     D:持久性

实体Entity:

• 客观存在并能够相互区分的客观事物或抽象事件称为实体。

属性:

• 实体所全数的天性或性质

联系:

• 联系是数据里面包车型大巴关联合公司合,是客观存在的运用语义链

联络的品类

• 一对一关系(1:1)
• 一对多关系(1:n)
• 多对多关系(m:n)

数量三要素

• 数据结构

• 数据的操作

• 数据的羁绊标准

约束:constraint

表中的数据要服从的界定

• 主键:三个或多个字段的咬合,填入的数量必得能在本表中天下无双标记本行;必得提供数据,即NOT NULL,二个表只能有叁个
• 惟一键:贰个或五个字段的构成,填入的数量必得能在本表中独步一时标记本行;允许为NULL,贰个表能够存在多少个
• 外键:贰个表中的某字段可填写的数据在于另三个表的主键或独一键已有个别数据
• 检查:字段值在自然范围内

索引:

• 将表中的一个或八个字段中的数据复制一份另存,何况此些需求按一定程序排序存款和储蓄

关系型数据库的常见组件

• 数据库:database
• 表:table
        行:row
        列:column
• 索引:index
• 视图:view
• 用户:user
• 权限:privilege
• 存款和储蓄进度:procedure,无再次回到值
• 存款和储蓄函数:function,有重临值
• 触发器:trigger
• 事件调解器:event scheduler,任务布置

数据库对象

• 数据库的零部件(对象):
         数据库、表、索引、视图、顾客、存款和储蓄进程、函数、触发器、事件调治器等
• 命名准则:
    必须以字母开始
    可总结数字和几个特殊字符(# _ $)
    不要使用MySQL的保留字
    同一database(Schema)下的对象不能够同名

数据类型

MySql辅助三种列类型:

• 数值类型
• 日期/时间项目
• 字符串(字符)类型

慎选准确的数据类型对于取得高质量至关心爱戴要,三大条件:

• 更加小的平时更加好,尽量选取可科学存储数据的蝇头数据类型
• 轻易就好,简单数据类型的操作平日须求更加少的CPU周期
• 尽量避免NULL,包罗为NULL的列,对MySQL更难优化

上海时时乐走势图 1

修饰符

具有类别:

• NULL 数据列可含蓄NULL值
• NOT NULL 数据列差异意富含NULL值
• DEFAULT 默认值
• PRIMARY KEY 主键
• UNIQUE KEY 唯一键
• CHARACTE瑞虎 SET name 钦定壹个字符集

数值型:

• AUTO_INCREMENT 自动递增,适用于整数类型
• UNSIGNED 无符号

SQL语句分类

• DDL: Data Defination Language 数据定义语言
            CREATE,DROP,ALTER
• DML: Data Manipulation Language 数据操纵语言
            INSERT,DELETE,UPDATE,SELECT
• DCL:Data Control Language 数据调整语言
           GRANT,REVOKE,COMMIT,ROLLBACK
• DQL:Data Query Language 数据查询语言
           SELECT

DML语句

DML: INSERT, DELETE, UPDATE(增删改)

INSERT:

• 三遍插入一行或多行数据

UPDATE:

• 注意:应当要有限制条件,不然将修改全体行的钦赐字段
• 限制条件:
      WHERE
      LIMIT

DELETE:

• 注意:必定要有限定规范,不然将清空表中的全部数据
• 限制条件:
      WHERE
      LIMIT

多表查询

• 交叉连接:笛Carl乘积
• 内连接:
       等值连接:让表之间的字段以“等值”营造连接关系;
       不等值连接
       自然连接:去掉重复列的等值连接
       自连接
• 外连接:
      左外连接:
           FROM tb1 LEFT JOIN tb2 ON tb1.col=tb2.col
      右外接连
           FROM tb1 RIGHT JOIN tb2 ON tb1.col=tb2.col

子查询:

• 在查询语句嵌套着询问语句,品质相当糟糕

• 基于某语句的询问结果再行举办的询问

视图

视图:VIEW,虚表,保存有实表的查询结果

创立方法:

CREATE VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

查阅视图定义:

SHOW CREATE VIEW view_name

删除视图:

DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]

视图中的数据实际上存款和储蓄于“基表”中,由此,其修改操作也会针对基表完成;
其修改操作受基表限制

函数

系统函数和自定义函数

自定义函数 (user-defined function UDF)

保存在mysql.proc表中

创建UDF:

CREATE [AGGREGATE] FUNCTION function_name(parameter_name
type,[parameter_name type,...])
RETURNS {STRING|INTEGER|REAL}
runtime_body

说明:

• 参数能够有七个,也足以未有参数
• 必需有且独有一个重回值

查阅函数列表:

SHOW FUNCTION STATUS;

翻开函数定义:

SHOW CREATE FUNCTION function_name

删除UDF:

DROP FUNCTION function_name

调用自定义函数语法:

SELECT function_name(parameter_value,...)

仓库储存进度

积累进程保存在mysql.proc表中

创建存款和储蓄进度:

CREATE PROCEDURE sp_name ([ proc_parameter [,proc_parameter ...]])
routime_body

• 其中:proc_parameter : [IN|OUT|INOUT] parameter_name type
• 在那之中IN表示输入参数,OUT代表输出参数,INOUT表示不仅能够输入也足以出口;
   param_name表示参数名称;type表示参数的类型

翻看存款和储蓄进度列表:

SHOW PROCEDURE STATUS

翻开存款和储蓄过程定义:

SHOW CREATE PROCEDURE sp_name

调用存款和储蓄进程:

CALL sp_name ([ proc_parameter [,proc_parameter ...]])
CALL sp_name

表明:当无参时,能够轻易"()",当有参数时,不可省略"()”

仓库储存进程修改:

• ALTE揽胜极光语句修改存款和储蓄进程只好修改存款和储蓄过程的评释等一丝一毫的事物,无法改改
• 存款和储蓄进程体,所以要修改存款和储蓄进度,方法就是删除重新创设

除去存款和储蓄进程:

DROP PROCEDURE [IF EXISTS] sp_name

仓库储存进度优势:

• 存款和储蓄进程把常常利用的SQL语句或作业逻辑封装起来,预编写翻译保存在数据库中,
• 当必要时从数据库中央直属机关接调用,省去了编写翻译的长河
• 进步了运营速度
• 同偶尔候减少网络数据传输量

仓库储存进度与自定义函数的分别:

• 存款和储蓄进程达成的进度要复杂一些,而函数的指向较强
• 存款和储蓄进度能够有两个再次来到值,而自定义函数独有一个再次回到值
• 存款和储蓄进程相似独立的来进行,而函数往往是作为其余SQL语句的一某个来行使

流程序调整制

仓库储存进程和函数中能够利用流程序调控制来决定语句的施行

流程序调节制:

• IF:用来开展规范判定。依照是还是不是满足条件,试行不一语句
• CASE:用来进展标准剖断,可完成比IF语句更头晕目眩的标准化剖断
• LOOP:重复实施一定的言语,完结贰个简约的轮回
• LEAVE:用于跳出循环调整
• ITERATE:跳出本次巡回,然后直接步入下壹回巡回
• REPEAT:有规范决定的循环语句。当满意特定条件时,就能够跳出循环语句
• WHILE:有原则决定的循环语句

触发器

触发器的推行不是由程序调用,亦不是由手工业运维,而是由事件来触发、激活进而达成试行

创建触发器:

CREATE
  [DEFINER = { user | CURRENT_USER }]
  TRIGGER trigger_name
  trigger_time trigger_event
  ON tbl_name FOR EACH ROW
  trigger_body

说明:
• trigger_name:触发器的名目
• trigger_time:{ BEFORE | AFTE路虎极光 },表示在事件此前或未来触发
• trigger_event::{ INSERT |UPDATE | DELETE },触发的切切实实事件
• tbl_name:该触发器成效在表名

查看触发器:

SHOW TRIGGERS

删除触发器:

DROP TRIGGER trigger_name;

  1、SELECT MATCH(note_text)AGAINST('PICASO') FROM tb_name;

分类

设置发展各种分为:

  • 网状型数据库
  • 等级次序型数据库
  • 关系型数据库
  • 面向对象数据库

主流:关系型数据库

  4、删除数据库:

三、修改表:

Mysql客户端

mysql顾客端可用选项:


-A, --no-auto-rehash 防止补全
-u, --user=                用户名,默认为root
-h, --host=                服务器主机,默感觉localhost
-p, --passowrd=        客户密码,提议利用-p,默以为空密码
-P, --port=                服务器端口
-S, --socket=             钦定连接socket文件路线
-D, --database=        钦命默许数据库
-C, –compress            启用压缩
-e “SQL“                     执行SQL命令
-V, –version               呈现版本
-v –verbose               呈现详细音信
--print-defaults        获取程序暗许使用的安插

DML语言 (增删改)

DML:INSERT(增加),DELETE(删除),UPDATE(修改)

//暗许是直接改换物理数据的,不能重临

为了幸免予修业改表的时候一不小心全改了,我们要加一个平安机制

cd /etc/my.cnf.d/

vim /mysql-clients.cnf

在mysql项加上safe-updates

丰裕后,我们在转移的时候不加where语句是无法运作的

//也可用 mysql -U

//间接定义小名就可

待续…

  3、创设有时表:

 十、分组查询:

 十三、视图

  2、HAVING 语句:

    CREATE [ OR REPLACE ] VIEW view_name AS SELECT。。。。。。

   12、SAVEPOINT(为ROLLBACK设置保留点)

  2、调用存款和储蓄进度:

       。。。。

  3、使用数据库:

    >ALTER TABLE name_old RENAME name_new;

    假诺有规范的创始数据表还足以应用   >CREATE TABLE IF NOT EXISTS tb_name(........

七、条件决定:

  2、复制表:

    >CREATE TRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

  1、帮助触发器的语句有DELETE、INSERT、UPDATE,别的均不接济

 十四、使用存款和储蓄进度:

  1、查看数据库:

   1、分组查询能够依据钦定的列进行分组:

    >RENAME TABLE name_old TO name_new;

  2、数学函数:

    >IN num INT,OUT total INT)

  5、查看表的布局:

顾客管理:

  1、创建表:

  1、ALTER TABLE(修改表)

    >DECLARE ordername CURSOR FOR

       CHANGE  column   datatype   COLUMNS  [ NULL | NOT NULL ]   [ CONSTRAINTS ]

    BEGIN

    >score TINYINT UNSIGNED NOT NULL DEFAULT 0,    //设置默许列值

    >DROP [ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

  3、权限管理

    恐怕局地复制:

十七、语法整理:

  2、条件使用Having;

  1、Mysql帮衬REGEXP的正则表明式:

    >DEFAULT charset=utf8;  //设置暗中同意的编码,幸免数据库中文乱码

    Linke()用法中      %  为同盟大肆、  _  相配二个字符(能够是汉字)

    >INSERT INTO tb_name(name,score) SELECT name,score FROM tb_name2;

    >SHOW GRANTS FO福特Explorer name;    //查看name客商权限

    >PRIMARY KEY(id)

  2、插入检索出来的数量:

  2、更换密码:

    IS NULL 空值检查实验

    也能够使用:

  1、新建客户:

    SELECT columns , .......   FROM tb_name [ WHERE ...... ] ;

  2、COMMIT(处总管务)

  1、插入数据:

    >DROP DATABASE db_name;

 九、MySQL的部分函数:

    >CREATE PROCEDURE pro()

  1、WHERE 语句:

 

    >INSERT INTO tb_name(id,name,score)VALUES(NULL,'张三',140),(NULL,'张四',178),(NULL,'张五',134);

    >SELECT SUM(score) INTO total FROM tb_name WHERE id=num;

    >SELECT * FROM tb_name WHERE name REGEXP '^[A-D]'   //找寻以A-D 为发端的name

  1、字符串链接——CONCAT()

 

    >END;

    实例:

    CREATE INDEX index_name ON tb_name (column [ ASC | DESC ] , .......);

  2、创制数据库:

      d、使用视图总计字段值,如聚集那样的值。

   13、SELECT (检索数据,展现新闻)

    INSERT INTO tb_name [ ( columns,...... ) ]

   8、DELETE (从表中删除一行或多行)

   1、游标的操作

    ROLLBACK [  TO  savapointname  ];

    

  2、视图的特殊作用:

  7、表重命名:

    END

    >SET PASSWORD FOR name=PASSWORD('fdddfd');

    >UPDATE tablename SET columnName=NewValue [ WHERE condition ]

    AND 、OR

  4、查看数据库中可用的表:

    >)ENGINE=InnoDB    //设置表的贮存引擎,寻常常用InnoDB和MyISAM;InnoDB可信,援助职业;MyISAM高效不帮助全文字笔迹查验索

    )ENGINE=[  InnoDB | MyiSAM ]DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

打开CMD,踏向数据库命令:mysql -hlocalhost -uroot -p

  4、运算符:

剥离数据库:exit

      c、过滤不想要的数额(select部分)

   11、ROLLBACK(取消二个事务管理块)

    >ALTER TABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

    这里的插入多条数据直接在后面加上逗号,间接写入插入的多少就可以;主键id是自增的列,能够不用写。

   14、START TRANSACTION (二个新的事务管理块的初步)

      b、重新格式化输出检索的多寡(TEvoqueIM,CONCAT等函数);

   15、UPDATE(更新一个表中的一行或多行)

   4、CREATE PROCEDURE (成立存储进程)

    使用SELECT值插入:

一、数据库操作: 

     、-、*、

    (  ADD    column  datatype    [ NULL | NOT NULL ]  [ CONSTRAINTS ]

    实例:

    >CREATE TABLE table_name(

  2、创制触发器:

    >BEGIN 

    >DROP PROCEDURE pro;         //删除内定期存款储进程

    >SELECT CONCAT(name,'=>',score) FROM tb_name

    >END;

    >INSERT语句,触发语句,重回贰个值

    >REVOKE SELECT ON db_name.* TO name;    //GRANT的反操作,去除权限;

    INSERT INTO tb_name [ ( columns,...... ) ]  VALUES(value1,............);

    >DROP TRIGGER trig;

    DELETE FROM table_name [WHERE ......]

    OLX570DEPAJERO BY DESC|ASC    =>按数量的降序和升序排列

 

    CREATE USER user_name [ @hostname ] [ IDENTIFIED BY [ PASSWORD ] 'pass_word' ];

    DATE()、CURTIME()、DAY()、YEAR()、NOW().....

    ........

    >SELECT COUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

    >SELECT order_num FROM orders;

    >ALTER TABLE tb_name ADD[CHANGE,RENAME,DROP] ...要退换的内容...

   6、CREATE USEXC60(创造顾客)

   10、INSERT (给表增添行)

  3、文本管理函数:

  2、特殊字符供给转义。

    >CREATE DATABASE db_name;  //db_name为多少库名

    >CREATE PROCEDURE pro(

    还足以选取:

    .......

    >DESCRIBE tb_name;

   3、CREATE INDEX(在四个或八个列上成立索引)

六、删除数据:

五、更新数据:

十六、触发器:

    >SHOW COLUMNS in tb_name;     //from也可以

常用的Mysql数据库操作语句大全

    UPDATE tb_name SET column=value,......[ where ]

    >CALL pro(13,@total)      //这里的储存进程多少个变量,多少个是IN一个是OUT,这里的OUT也是内需写上的,不写会出错

    >name VARCHAR(60) NOT NULL

    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,

   5、CREATE TABLE(创建表)

       DROP    column,

十一、UNION准则——能够试行多个语句(能够去除重复行)

    >SHOW PROCEDURE STATUS;      //彰显当期的积攒进程

  1、创设存储进度:

    >SHOW TABLES;

    >DROP TABLE IF EXISTS tb_name;

  个人精通,存款和储蓄进度正是三个自定义函数,有一对变量参数,可传唱参数,能够重回值,可是那语法够鲁钝的~~~

 八、MySQL的正则表明式:

  1、成立视图

    =、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

    >ALTER TABLE tb_name DROP address;

    column_name  datetype  [ NULL | NOT NULL ]   [ condtraints]   ,

    AVG、SUM、MAX、MIN、COUNT;

    >CREATE TEMPORARY TABLE tb_name(这里和创制普通表同样);

  6、删除表:

    >CREATE USER name IDENTIFIED BY 'ssapdrow';

    ALTER TABLE table_name

   ***这里的  IN (传递多个值给存储过程),OUT(从存款和储蓄进程传出二个值),INOUT(对存款和储蓄进程传入、传出),INTO(保存变量)

    SAVEPOINT sp1;

    >SELECT @total         //这里就足以见见结果了;

  1、钦点更新数据:

    >id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,    //id值,无符号、非空、递增——独一性,可做主键。

    >BEGIN

    >UPDATE tb_name SET score=189 WHERE id=2;

    >COMMIT;

    CREATE TABLE tb_name(

四、插入数据:

    >SELECT * FROM tb_name GROUP BY score HAVING count(*)>2

  对这些掌握不是很懂,朋友多多指导哦~~~

    TRIM、LOCATE、UPPER、LOWER、SUBSTRING

  触发器是指在进展某项钦定操作时,触发触发器内钦点的操作;

    >SHOW DATABASES;

    SELECT column_name,.....FROM tb_name  [ WHERE ]   [ UNION ]    [ RROUP BY ]   [ HAVING ]   [ ORDER BY ]

    >CLOSE ordername;    //关闭游标

十五、使用游标:

   7、CREATE VIEW (在贰个或三个表上创办视图)

原稿地址:

    PRIMARY KEY( column_name )

  1、删除数据:

二、创建表:

   9、DROP(恒久删除数据库及对象,如视图、索引等)

 十二、全文字笔迹查验索——MATCH和AGAINST

    START TRANSACTION

    >CREATE TABLE tb_name2 SELECT * FROM tb_name;

    CREATE PROCEDURE pro([ parameters ])

  3、ORDER BY 排序:

    >CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

    DROP DATEBASE | INDEX | PROCEDURE | TABLE | TRIGGER | USER | VIEW  name

    >CREATE VIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

    >USE db_name;

  3、删除触发器

    >SELECT * FROM tb_name WHERE id=3;

      a、简化表之间的联合(把联结写在select中);

    )

  1、更动表结构:

  5、时间函数:

    >GRANT SELECT ON db_name.* TO name;    //给name用户db_name数据库的兼具权限

  3、存款和储蓄进程的另外操作:

    >OPEN ordername;    //张开游标

  3、相关标准调整符: 

    >ALTER TABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

    >DELETE FROM tb_name WHERE id=3;

  2、InnoDB引擎不支持全文字笔迹核实索,MyISAM能够;

本文由上海时时乐走势图发布于上海时时乐走势图,转载请注明出处:(转载)常用的Mysql数据库操作语句大全【上海时时

您可能还会对下面的文章感兴趣: