创建Mysql数据表语法:
CREATE TABLE table_name (column_name column_type);
创建runoob_table表
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
删除Mysql数据表的语法;
DROP TABLE table_name;
查询:
select * from 表名称
eg: select LastName ,FirstName from persons
表中查询:
eg: select distinct 列名称 from 表名称
select distinct Company from Orders;
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
关键词 DISTINCT 用于返回唯一不同的值。
条件查询:
where select 列名称 from 表名称 where 列 运算符 值
eg: select * from Persons where City ='Beijing';
AND 和or 运算符用于基于一个以上的条件对记录进行过滤:
and和 or可在where 子语句中把两个或者多个条件结合起来;
如果第一个条件和第二个条件都成立则And 运算符显示一条记录,
使用 AND 来显示所有姓为 "Carter" 并且名为 "Thomas" 的人:
eg: select * from Perons where FirstName ='Thomas' And LastName = 'Carter';
如果第一个条件和第二个条件只要一个成立,则or运算符显示一条记录,
使用 OR 来显示所有姓为 "Carter" 或者名为 "Thomas" 的人:
eg: select * from Persons where FirstName = 'Thomas' or LastName ='carter';
and 和or 结合起来 (使用圆括号来组成复杂的表达式)
查询出第一个名字是Thomas 和 William 第二个是Carter的数据
eg: select * from Persons where (FirstName ='Thomas' or LastName = 'William') And LastName ='Carter';
order by 语句 用于根据制定的列对结果集进行排序
默认按照升序对记录进行排序 降序排序用关键字Desc
以字母顺序显示公司名称:
eg; select Company ,orderNumber From orders order By company ;
Company | OrderNumber |
---|---|
Apple | 4698 |
IBM | 3532 |
W3School | 6953 |
W3School | 2356 |
以字母顺序显示公司名称(Company),并以数字顺序显示顺序号(OrderNumber)
select Company ,orderNumber From orders order By company ,orderNumber;
Company | OrderNumber |
---|---|
Apple | 4698 |
IBM | 3532 |
W3School | 2356 |
W3School | 6953 |
eg;select Company ,orderNumber from orders order By company desc, orderNumber desc;
insert into 用于语句向表格中插入新的行,
语法: insert into 表名称 values(值1,值2);
我们也可以指定所要插入的列
eg: insert into table_name(列1,列2) values(值1,值2);
insert into Persons Values ('Gates','Bill','xuanwumen','beijing');
eg: insert into Persons (LastName ,Address) values ('wilson','Champs-Elyess');
update 语法,用于修改表中的数据;
update 表名称 set 列名称 = 新值 where 列名称 = 某值
eg; update Person set FirstName = 'fred' where LastName ='wilson';
update person set Address = 'zhongshan23' , city='Nanjing' where LastName = 'wilson';
delete 语句用于删除表中的行
delete from 表名称 where 列名称 =值
eg; 删除某行;
delete from Person where LastName = 'wilson';
删除所有行,(即表的结构,属性和索引都是完整的)
eg;delete from table_name / delete * from table_name;
like 操作符用于在where 子句中搜索列中的指定模式。
eg: select * from Persons where City like 'N%' "%"可用于定义通配符
select * from Persons Where City like '%lon%'
select * from Persons Where City not like '%lon%' persons 表中不包含lon的人
in 操作符允许我们在where子句中规定多个值
从persons表中选出姓氏中为adams 和carter的人
eg; select * from Persons Where lastName in ('Adams','Carter') ;
between 操作符在 where子句中选取,作用是选取介于两者之间的数据范围。
这些值可以是数值,文本,或者日期。
语法:
select Column_name
from Table_name
where column_name
Between value1 and value2
eg: select * from Persons where lastName Between 'Adams' and 'Cater'
显示介于adams (包括)和cater(不包括)之间的人。
select * from Persons where lastname Not Between 'adams' and 'Cater'
显示范围之外的人 使用not 操作符
两个表关联
eg; select Persons.LastName ,Persons.FirstNname, Orders.orderNo
from Persons,Orders
where Persons.Id= Orders.Id
函数. AVG函数返回数值列的平均值,Null 值不包括在计算中
查找OrderPrice 值高于orderPrice平均值的客户
语法: select Customer from Orders
where orderPrice > (select AVG (orderPrice) from Orders )