php点点通
,欢迎大家一起探讨php教程!
Loading
您所在的位置:首页 > web前端 > 正文

20分钟MySQL基础入门

作者: 来源: 日期:2016-10-13 9:17:08 人气:753 加入收藏 评论:0 标签:

开始使用

MySQL为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成, 如图所示的一个表格:

  • 表头(header): 每一列的名称;

  • 列(row): 具有相同数据类型的数据的集合;

  • 行(col): 每一行用来描述某个人/物的具体信息;

  • 值(value): 行的具体信息, 每个值必须与该列的数据类型相同;

  •  

登录MySQL

mysql -h 127.0.0.1 -u 用户名 -p
mysql -D 所选择的数据库名 -h 主机名 -u 用户名 -p
mysql> exit # 退出mysql> quit # 退出

创建数据库

对于表的操作需要先进入库use 库名;

-- 创建一个名为 samp_db 的数据库,数据库字符编码指定为 gbkcreate database samp_db character set gbk;drop database samp_db; -- 删除 库名为samp_db的库show databases;        -- 显示数据库列表。use samp_db;    -- 选择创建的数据库samp_dbshow 表名;       -- 显示samp_db下面所有的表名字describe 表名;   -- 显示数据表的结构delete from 表名; -- 清空表中记录

创建数据库表

使用 create table 语句可完成对表的创建, create table 的常见形式:语法:create table 表名称(列声明);

Create TABLE `user_accounts` (  `id`             int(100) unsigned NOT NULL AUTO_INCREMENT primary key,  `password`       varchar(32)       NOT NULL DEFAULT '' COMMENT '用户密码',  `reset_password` tinyint(32)       NOT NULL DEFAULT 0 COMMENT '用户类型:0-不需要重置密码;1-需要重置密码',  `mobile`         varchar(20)       NOT NULL DEFAULT '' COMMENT '手机',  `create_at`      timestamp(6)      NOT NULL DEFAULT CURRENT_TIMESTAMP(6),  `update_at`      timestamp(6)      NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON Update CURRENT_TIMESTAMP(6),  -- 创建唯一索引,不允许重复
  UNIQUE INDEX idx_user_mobile(`mobile`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8
COMMENT='用户表信息';

数据类型的属性解释

  • NULL:数据列可包含NULL值;

  • NOT NULL:数据列不允许包含NULL值;

  • DEFAULT:默认值;

  • PRIMARY:KEY 主键;

  • AUTO_INCREMENT:自动递增,适用于整数类型;

  • UNSIGNED:是指数值类型只能为正数;

  • CHARACTER SET name:指定一个字符集;

  • COMMENT:对表或者字段说明;

增删改查

Select

Select 语句用于从表中选取数据。 
语法:Select 列名称 FROM 表名称 
语法:Select * FROM 表名称

-- 表abc 两个 id  表abc中不包含 字段a=b 的 查询出来,只显示idSelect s.id from station s Where id in (13,14) and user_id not in (4);-- 从表 Persons 选取 LastName 列的数据Select LastName FROM Persons-- 结果集中会自动去重复数据Select DISTINCT Company FROM Orders

Update

Update 语句用于修改表中的数据。 
语法:Update 表名称 SET 列名称 = 新值 Where 列名称 = 某值

-- update语句设置字段值为另一个结果取出来的字段update user set name = (select name from user1 where user1 .id = 1 )where id = (select id from user2 where user2 .name='小苏')

Insert

Insert INTO 语句用于向表格中插入新的行。 
语法:Insert INTO 表名称 VALUES (值1, 值2,....) 
语法:Insert INTO 表名称 (列1, 列2,...) VALUES (值1, 值2,....)

-- 向表 Persons 插入一条字段 LastName = Wilson 字段 Address = shanghaiInsert INTO Persons (LastName, Address) VALUES ('JSLite', 'shanghai');Insert INTO meeting SET a=1,b=2;

Delete

Delete 语句用于删除表中的行。 
语法:Delete FROM 表名称 Where 列名称 = 值

-- 在不删除table_name表的情况下删除所有的行,清空表。Delete FROM table_name-- 或者Delete * FROM table_name-- 删除 Person表字段 LastName = 'Wilson' Delete FROM Person Where LastName = 'Wilson' -- 删除 表meeting id 为2和3的两条数据Delete from meeting where id in (2,3);-- 表 Persons 字段 Id_P 等于 Orders 字段 Id_P 的值,-- 结果集显示 Persons表的 LastName、FirstName字段,Orders表的OrderNo字段Select p.LastName, p.FirstName, o.OrderNo FROM Persons p, Orders o Where p.Id_P = o.Id_P

Where

Where 子句用于规定选择的标准。 
语法:Select 列名称 FROM 表名称 Where 列 运算符 值

-- 从表 Persons 中选出 Year 字段大于 1965 的数据Select * FROM Persons Where Year>1965

AND 和 or

AND - 如果第一个条件和第二个条件都成立; OR - 如果第一个条件和第二个条件中只要有一个成立;

AND

-- 删除 meeting 表字段 -- id=2 并且 user_id=5 的数据  和-- id=3 并且 user_id=6 的数据 Delete from meeting where id in (2,3) and user_id in (5,6);-- 使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人:Select * FROM Persons Where FirstName='Thomas' AND LastName='Carter';

OR

-- 使用 OR 来显示所有姓为 "Carter" 或者名为 "Thomas" 的人:Select * FROM Persons Where firstname='Thomas' OR lastname='Carter'

ORDER BY

语句默认按照升序对记录进行排序。 
ORDER BY - 语句用于根据指定的列对结果集进行排序。 
DESC - 按照降序对记录进行排序。 
ASC - 按照顺序对记录进行排序。

-- Company在表Orders中为字母,则会以字母顺序显示公司名称Select Company, OrderNumber FROM Orders ORDER BY Company-- 后面跟上 DESC 则为降序显示Select Company, OrderNumber FROM Orders ORDER BY Company DESC-- Company以降序显示公司名称,并OrderNumber以顺序显示Select Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

IN

IN - 操作符允许我们在 Where 子句中规定多个值。 
IN - 操作符用来指定范围,范围中的每一条,都进行匹配。IN取值规律,由逗号分割,全部放置括号中。
语法:Select "字段名"FROM "表格名"Where "字段名" IN ('值一', '值二', ...);

-- 从表 Persons 选取 字段 LastName 等于 Adams、CarterSelect * FROM Persons Where LastName IN ('Adams','Carter')

NOT

NOT - 操作符总是与其他操作符一起使用,用在要过滤的前面。

Select vend_id, prod_name FROM Products Where NOT vend_id = 'DLL01' ORDER BY prod_name;

AS

as - 可理解为:用作、当成,作为;别名 
一般是重命名列名或者表名。 
语法:select column_1 as 列1,column_2 as 列2 from table as 表

Select * FROM Employee AS emp-- 这句意思是查找所有Employee 表里面的数据,并把Employee表格命名为 emp。-- 当你命名一个表之后,你可以在下面用 emp 代替 Employee.-- 例如 Select * FROM emp.Select MAX(OrderPrice) AS LargestOrderPrice FROM Orders-- 列出表 Orders 字段 OrderPrice 列最大值,-- 结果集列不显示 OrderPrice 显示 LargestOrderPrice-- 显示表 users_profile 中的 name 列Select t.name from (Select * from users_profile a) AS t;-- 表 user_accounts 命名别名 ua,表 users_profile 命名别名 up-- 满足条件 表 user_accounts 字段 id 等于 表 users_profile 字段 user_id-- 结果集只显示mobile、name两列Select ua.mobile,up.name FROM user_accounts as ua INNER JOIN users_profile as up ON
    本文网址:http://www.phpddt.com/2016category/dhtml/3.html
    读完这篇文章后,您心情如何?
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    • 0
    更多>>网友评论
    发表评论