数据库增删改查
1、创建数据库:
create database 数据库名;
2、删除数据库:
drop database 数据库名
创建表的语法
create table 表名(
字段1 数据类型,
........
)
create database hty_test charset utf8;
use hty_test;
create table product(
id int primary key auto_increment comment 'id',
name varchar(40) not null comment '商品名字',
price float4 default 0
)comment='商品信息表'
#创建一张表:
CREATE TABLE 表名(字段名1 数据类型,字段名2 数据类型....);
#删除表:drop table 表名;
#查询:
(1)、查询某一张表的结构:desc 表名
DESC bank;
(2)、打印某一张表sql创建信息:show CREATE TABLE 表名;
SHOW CREATE TABLE bank;
#修改表:
(1):对已经存在的表进行重命名:rename TABLE 旧表名 TO 新表名;
RENAME TABLE aaa TO bank;
(2):往已经存在的表中添加字段信息:alter TABLE 表名 ADD 字段名 数据类型;
ALTER TABLE bank ADD gender VARCHAR(2);
(3):删除某一张表中的字段:alter TABLE 表名 DROP 被删除的字段名
ALTER TABLE bank DROP gender;
(4):对表中字段进行重命名:ALTER TABLE 表名 CHANGE 旧字段名 新字段名 新字段名数据类型
ALTER TABLE bank CHANGE aaa username VARCHAR(40);
(5):修改某一字段的数据类型长度:
ALTER TABLE bank CHANGE bankNo bankNo VARCHAR(25);
数据库字段增删改查
insert into product values(null,'男童运动长裤加绒版', 20.5, '2455868','男童运动长裤加绒版')
update 表名 set 字段名 = 新值 where 字段名 = 旧值
delete from 表名 where 字段名 = 值
where(重点,条件语句)
如果你的语句中有条件,则在语句末尾加上where,再跟上你的条件。例如:
select * from 表名 where 字段名 = 值
delete from 表名 where 字段名 = 值
=, >, <, >=, <=, <>(不等于)都适用于where
where用法极其丰富,后面我会一一讲解,这里暂时给点简单的例子
and 和 or(运算符)
and类似于java(不仅仅java)运算符的 &(与), or类似于 | (或) 。
AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来
and例子:
select * from 表名 where 条件1 and 条件2
查询列出满足条件1和条件2的结果
or例子:
select * from 表名 where 条件1 or 条件2
查询列出满足条件1或者条件2的结果(满足其中一的都列出来)
order by(排序)
对结果进行排序
order by 写在语句最后面,给结果集排序。
order by 列子:
select 字段1,字段2 from 表名 order by 字段1 desc, 字段2 asc
order by asc 升序 查询出的结果升序
可以没有order by 后面的关键字,那样就默认asc(升序)
order by desc 降序 结果降序
用法大同小异,多种结果也可以多种排序,用","隔开
limit(规定返回的数目)
注意:mySQL使用的是limit来规定返回的数目,Oracle的语法是不一样的
在你的select语句后面加上它,可以指定你查询结果的记录的条数
列子1:
select * from 表名 limit 2
查询列出这张表的前2行的记录
like与通配符
首先我们要知道什么是通配符,以下就是sql中使用的通配符,但必须和like一起使用
% 替代一个或多个字符
_ 只代替一个字符
[charlist] 在字符列中的任何单一字符
[^charlist]
等价于
[!charlist] 不在字符列中的任何单一字符
%通配符:
select * from 表名 where 字段名 like 'xx%'
查询列出此字段以xx开头的记录
select * from 表名 where 字段名 like '%xx%'
查询列出此字段包含xx的记录
_:
select * from 表名 where 字段名 like '_xx'
查询列出此字段先以一个任意字符开头,后面为xx的记录
select * from 表名 where 字段名 like '_x_x_'
查询列出此字段先以一个任意字符开头,后面为x,又接一个任意字符,又接一个x,再接一个任意字符的记录
[charlist]:
select * from 表名 where 字段名 regexp '[abc]%'
查询列出此字段以a或b或c开头的记录,这里没用到 like 关键字,是因为mysql的语法用regexp(正则表达式)代替了
[!charlist]:
select * from 表名 where 字段名 like '[!abc]%'
查询列出此字段不以a或b或c开头的记录
in
前面我们可以根据具体的字段来查询记录比如:
where 字段名 in 值
where 字段名 in (值1,值2,值3....)
有了in我们可以规定多个值
between
BETWEEN ... AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
select * from 表名 where 字段名 between 左范围 and 右范围