mysql笔记集锦2

来源:互联网 发布:单片机悬浮是什么意思 编辑:程序博客网 时间:2024/05/16 11:45
day2:数据库的增删改查
补充:
1.查找过程中出现乱码:
告诉服务器,客户端使用的是GBK编码
**set names gbk;


2.sql可以换行打,遇到“;”时认为结束;


3.如果语句打错了,怎么办?
   "\c"可以跳出执行;


增删改查:
1.增
  1.1tee D:\1019.sql
 //tee这句话是把敲的代码和结果都放到一个sql文件里;


  1.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;


  1.3查看一下class表的结构
desc class;


  1.4"增"sql语句:
加数据就相当于增加一行,而不是增加一列;
增加列会改变表的结构;
    插入数据应该解决的问题:
(1)往那张表插入数据?
(2)添加哪几列?
(3)分别添加什么值?
    代码示例:
    insert into class
(id,sname,gender,company,salary,fanbu)
values 
(1,'cson','男','百度',8888.67,234);
注意:
     《1》id在该表中是自增型;
     《2》回头再来看,插入所有列的情况:
如果插入所有列,可以不声明插入的列;
即:如果不声明插入的列,则理解为依次插入所有列;
     《3》不要犯如下错误:
#不要认为id是自增型的,插入时不必为其赋值;
会出错:ERROR 1136;列与值必须按顺序一一对应;
     《4》插入多行:
代码示例:
insert into class(sname,gender)
values
('hu','M'),
('chen','W'),
('cc','W');




2.改
  2.1update
解决问题:
(1)改哪张表?
(2)你需要给改哪几列的值?
(3)分别改为什么值?
       *(4)在哪些行生效?
代码示例:
   update class
set
gerder = 'W',
company = '搜狐';
where id = 3;
   2.2注意事项:
《1》不要认为where 就只能id = N这种形式,而是where expression,表达式这样,只要where表达式为真,则改行就发挥作用;


  2.3练习:
    (1)改性别为男,且工资>8000的用户;
update class
set fanbu = 200
where gender = 'M' and salary > 8000;
    (2)update class
set funbu = 100
where 1;
意思:全改饭补为100;因为where 1 中的1恒为真,所以这样;




3.删:删除就是指删除整行,不存在删除行中的某些列。
    3.1解决问题:
(1)删除哪张表的数据?
(2)要删除哪些行?


代码示例:
delete from  
where
salary > 8880;
    3.2delete from class;//表中的全部数据都被删除了;


4.查
     4.1解决问题:
(1)查哪张表?
(2)查哪些列?
(3)要选择哪些行?


代码示例:
select sname,company,salary
from class
where id = 3;
×这是最简单的增删改查,是针对单个表来说的。×