首页 后端开发 php教程 数据库操作Mysql

数据库操作Mysql

Jun 23, 2016 pm 02:13 PM

1、新建用户:

    >CREATE USER name IDENTIFIED BY 'ssapdrow';

  2、更改密码:

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

  3、权限管理

    >SHOW GRANTS FOR name;    //查看name用户权限

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

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

一、数据库操作: 

  1、查看数据库:

    >SHOW DATABASES;

  2、创建数据库:

    >CREATE DATABASE db_name;  //db_name为数据库名

  3、使用数据库:

    >USE db_name;

  4、删除数据库:

    >DROP DATABASE db_name;

二、创建表:

  1、创建表:

    >CREATE TABLE table_name(

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

    >name VARCHAR(60) NOT NULL

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

    >PRIMARY KEY(id)

    >)ENGINE=InnoDB    //设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索

    >DEFAULT charset=utf8;  //设置默认的编码,防止数据库中文乱码

    如果有条件的创建数据表还可以使用   >CREATE TABLE IF NOT EXISTS tb_name(........

  2、复制表:

    >CREATE TABLE tb_name2 SELECT * FROM tb_name;

    或者部分复制:

    >CREATE TABLE tb_name2 SELECT id,name FROM tb_name;

  3、创建临时表:

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

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

    >SHOW TABLES;

  5、查看表的结构:

    >DESCRIBE tb_name;

    也可以使用:

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

  6、删除表:

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

    实例:

    >DROP TABLE IF EXISTS tb_name;

  7、表重命名:

    >RENAME TABLE name_old TO name_new;

    还可以使用:

    >ALTER TABLE name_old RENAME name_new;

三、修改表:

  1、更改表结构:

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

    实例:

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

    >ALTER TABLE tb_name DROP address;

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

四、插入数据:

  1、插入数据:

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

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

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

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

五、更新数据:

  1、指定更新数据:

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

    >UPDATE tablename SET columnName=NewValue [ WHERE condition ]

六、删除数据:

  1、删除数据:

    >DELETE FROM tb_name WHERE id=3;

七、条件控制:

  1、WHERE 语句:

    >SELECT * FROM tb_name WHERE id=3;

  2、HAVING 语句:

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

  3、相关条件控制符: 

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

    AND 、OR

    Linke()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)

    IS NULL 空值检测

 八、MySQL的正则表达式:

  1、Mysql支持REGEXP的正则表达式:

    >SELECT * FROM tb_name WHERE name REGEXP '^[A-D]'   //找出以A-D 为开头的name

  2、特殊字符需要转义。

 九、MySQL的一些函数:

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

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

  2、数学函数:

    AVG、SUM、MAX、MIN、COUNT;

  3、文本处理函数:

    TRIM、LOCATE、UPPER、LOWER、SUBSTRING

  4、运算符:

    +、-、*、\

  5、时间函数:

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

 十、分组查询:

   1、分组查询可以按照指定的列进行分组:

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

  2、条件使用Having;

  3、ORDER BY 排序:

    ORDER BY DESC|ASC    =>按数据的降序和升序排列

十一、UNION规则——可以执行两个语句(可以去除重复行)

 十二、全文检索——MATCH和AGAINST

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

  2、InnoDB引擎不支持全文检索,MyISAM可以;

 十三、视图

  1、创建视图

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

  2、视图的特殊作用:

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

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

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

      d、使用视图计算字段值,如汇总这样的值。

 十四、使用存储过程:

  个人理解,存储过程就是一个自定义函数,有局部变量参数,可传入参数,可以返回值,不过这语法够呆滞的~~~

  1、创建存储过程:

    >CREATE PROCEDURE pro(

    >IN num INT,OUT total INT)

    >BEGIN

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

    >END;

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

  2、调用存储过程:

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

    >SELECT @total         //这里就可以看到结果了;

  3、存储过程的其他操作:

    >SHOW PROCEDURE STATUS;      //显示当期的存储过程

    >DROP PROCEDURE pro;         //删除指定存储过程

十五、使用游标:

  对这个理解不是很懂,朋友多多指点哦~~~

   1、游标的操作

    >CREATE PROCEDURE pro()

    >BEGIN 

    >DECLARE ordername CURSOR FOR

    >SELECT order_num FROM orders;

    >END;

    

    >OPEN ordername;    //打开游标

 

    >CLOSE ordername;    //关闭游标

十六、触发器:

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

  1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

  2、创建触发器:

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

    >INSERT语句,触发语句,返回一个值

  3、删除触发器

    >DROP TRIGGER trig;

十七、语法整理:

  1、ALTER TABLE(修改表)

    ALTER TABLE table_name

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

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

       DROP    column,

       。。。。

    )

  2、COMMIT(处理事务)

    >COMMIT;

   3、CREATE INDEX(在一个或多个列上创建索引)

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

   4、CREATE PROCEDURE (创建存储过程)

    CREATE PROCEDURE pro([ parameters ])

    BEGIN

    ........

    END

   5、CREATE TABLE(创建表)

    CREATE TABLE tb_name(

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

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

    .......

    PRIMARY KEY( column_name )

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

   6、CREATE USER(创建用户)

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

   7、CREATE VIEW (在一个或多个表上创建视图)

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

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

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

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

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

   10、INSERT (给表添加行)

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

    使用SELECT值插入:

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

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

   11、ROLLBACK(撤销一个事务处理块)

    ROLLBACK [  TO  savapointname  ];

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

    SAVEPOINT sp1;

   13、SELECT (检索数据,显示信息)

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

   14、START TRANSACTION (一个新的事务处理块的开始)

    START TRANSACTION

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

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

 

 

 

【后记】MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle、MS-SQL ,MySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构。MySQL之所以能够被数以万计的网站采用,也是由此而来。

  我以前数据库学的不怎么好,今天补习了一下,感觉开源轻量级的数据库也有大内容,从5版本以后,陆续支持了游标、触发器、事务、存储过程等高级应用,这也给MySQL的易用性和企业服务的发展添加了重要的砝码。

  数据库的基础很少,但数据库的性能优化却是最重要的,所以多多优化,必有裨益。


本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

会话如何劫持工作,如何在PHP中减轻它? 会话如何劫持工作,如何在PHP中减轻它? Apr 06, 2025 am 12:02 AM

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

在PHPStorm中如何进行CLI模式的调试? 在PHPStorm中如何进行CLI模式的调试? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

框架安全功能:防止漏洞。 框架安全功能:防止漏洞。 Mar 28, 2025 pm 05:11 PM

文章讨论了框架中的基本安全功能,以防止漏洞,包括输入验证,身份验证和常规更新。

如何在系统重启后自动设置unixsocket的权限? 如何在系统重启后自动设置unixsocket的权限? Mar 31, 2025 pm 11:54 PM

如何在系统重启后自动设置unixsocket的权限每次系统重启后,我们都需要执行以下命令来修改unixsocket的权限:sudo...

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

See all articles