1、存储表:tee D:\study.sql
2、简单创建一个薪资登记表
create table class(
id int primary key auto_increment,
sname varchar(10) not null default '',
gender char(1) not null default '',
company varchar(20) not null default '',
salary decimal(6,2) not null default 0.00,
fanbu smallint not null default 0
)engine myisam charset utf8;
3、查看表的结构: desc 表名;
mysql> desc class;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| sname | varchar(10) | NO | | | |
| gender | char(1) | NO | | | |
| company | varchar(20) | NO | | | |
| salary | decimal(6,2) | NO | | 0.00 | |
| fanbu | smallint(6) | NO | | 0 | |
+---------+--------------+------+-----+---------+----------------+
6 rows in set
4、添加数据
insert into class
(id,sname,gender,company,salary,fanbu)
values
(1,'张三','男','百度',8888.67,234);
**添加部分属性**
insert into class
(sname,gender,salary)
values
('刀锋','男',8765.43);
**添加所有属性,第2行可省略**
insert into class
values
(3,'李四','女','新浪',5678.99,125);
**添加多行数据**
insert into class
(sname,company,salary)
values
('刘备','皇室成员',15.28),
('孙策','江东集团',56.34),
('曹操','宦官后裔',88.56);
mysql> select * from class;
+----+-------+--------+----------+---------+-------+
| id | sname | gender | company | salary | fanbu |
+----+-------+--------+----------+---------+-------+
| 1 | 张三 | 男 | 百度 | 8888.67 | 234 |
| 2 | 刀锋 | 男 | | 8765.43 | 0 |
| 3 | 李四 | 女 | 新浪 | 5678.99 | 125 |
| 4 | 刘备 | | 皇室成员 | 15.28 | 0 |
| 5 | 孙策 | | 江东集团 | 56.34 | 0 |
| 6 | 曹操 | | 宦官后裔 | 88.56 | 0 |
+----+-------+--------+----------+---------+-------+
6 rows in set
- id在上例中虽然没有插入值,但是id是自增型,因此值为2
- 如果插入所以列的情况,则可以不声明待插入的列,mysql会自动理解为待插入所有列
-
记住添加元素的3大要素:
往哪张表添加行: class
添加哪几列:(sname,gender,salary)
分别添加的值是:('刀锋','男',8765.43); -
注意:
1、即使是自增型数据,也是需要赋值,在insert中列与值要严格对应,列与值必须一一对应,即使用逗号隔开也不行
但是可以用null来占位,但是不建议这样,会出现兼容性等问题。
insert into class
values
('李四','女','新浪',5678.99,125);
5、修改数据
**全部都改了**
update class
set
gender='女',
company='千度';
**只改特定行**
update class
set fanbu=123
where id=6;
**选择其他属性值作为确定行的关键字**
update class set gender='男',fanbu='212'
where sname='孙策';
**改性别为男,且工资>8000的用户**
update class set fanbu=159
where gender='男' and salary>8000;
**当表达一直为真,则全改**
update class set fanbu=99 where 1;
-
修改表的4大要素:
改哪张表: class
改哪几列:gender,company
改成什么值:'女','千度' 修改哪几行数据:where expression - 当确定行的关键字重复,在修改的时候会修改多行
- where后面跟的是表达式,当表达式为真,则修改该行数据
6、删除数据
**删除salary>8888的用户**
delete from class where salary>8888;
**删除salary大于8000,且性别为女的用户
delete from class where salary>8000 and gender='女';
**删除表中所有数据,与truncate比较**
delete from class;
- 删除只能删除整行,不存在删除一行中的某几列,不然就是修改
-
删除表的2大要素:
删除哪张表的数据: class
删哪几行:where expression - 显示Query OK, 0 row affected (0.00 sec) 表明程序执行成功了,删除了0行
7、查找数据
**查找特定行,特定列的数据**
select sname,company,salary from class where id=6;
**查找表中所有数据**
*代表所有列,表名后不加where条件,则选择所有行
select * from class;
**部分列,所有行,取所有的人的姓名和工资**
select sname,salary from class;
**查id>3的人的所有列**
select * from class where id>3;
**取部分行部分列**
select sname,fanbu from class where id < 5;
- 要把where后面看为一个表达式,不要被其限制住,为真就取出该列
以下为在MySQL数据库中查询数据通用的 SELECT 语法:
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
- 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查询条件。
- SELECT 命令可以读取一条或者多条记录。
- 你可以使用星号(*)来代替其他字段,SELECT语句会返回表的所有字段数据
- 你可以使用 WHERE 语句来包含任何条件。
- 你可以使用 LIMIT 属性来设定返回的记录数。
- 你可以通过OFFSET指定SELECT语句开始查询的数据偏移量。默认情况下偏移量为0。