插入数据

现在是光有表了但是没有数据
insert into + teacher + (id, name, phoneNumber, address) + values(1, 'yyy', '8848', 'chengdu');
使用这样的一串形式
也就是这个样子的
这样数据就已经进去了
那怎么去看呢?
select * from teacher;
这样就完成了查询,这里星号是表示查询所有的东西
这条语句的效率会很低
插入的语句有很多
就像第一条语句一样,但是这样做太麻烦了,上面是一一对应的
你可以不按照表的顺序去写,主要后续添加的东西是对应的就可以
还有一种方式就是省略一些东西
直接values()
,这样写的话就需要和之前是一一对应的
这里可以看到主包前几次里面的内容没有添加完全,就会显示不让我添加,这个时候对应的位不能空着,而是要写上NULL,因为id在设置的时候选择了自动增加,所以这里可以直接写NULL
但是我搜索的时候,怎么搜索主字段呢?我记得设置的是id,但是为啥就显示两个2呢?
对啊这里主包设置的就是id啊?有点奇怪
上文中也可以把NULL修改成DEFAULT,这样插入的时候就可以使用default
这个时候写小写就行,没必要
那我不想一次性全写,我只想写几个
就可以加上省略的部分,然后保证对应就可以
一次性插入多条语句
只需要后面加一个逗号,然后跟上要写的内容就行了
删除数据
delete from teacher where id=5;
这样就把id=9的干掉了
这里不使用id也可以
delete from teacher where name=Tom;
这么做的话就叫Tom都被干掉了
一般都是根据唯一的数据去删除,不然会造成灾难
不然容易杀错人
删除的时候可以加入限制条件
delete from teacher where age>30;
这是举个例子,如果有一张表里面的人有年龄的话,这么做会把年龄大于30的都删除
如果想把表里面所有的数据都删除怎么办
delete from teacher;
这么做就都删掉了
但是删除一战表的数据时候非常不建议这么写
因为这样写的话,是会有一个遍历的过程,类似于一个for循环
删一个i++,然后再删下一个
这样做的话,面对大量数据的时候是非常慢的
这个时候就不能快速删库跑路,这么删太慢了
truncate table teacher
这个才是原滋原味的删库跑路,这就是把原来的表直接干没了,然后给你创建一个新的表和之前的一模一样,但是这个表里面没有任何东西
这个快
更新数据
注意NULL使用小写也可以
注意这里有小细节,使用之前for循环的时候,之前id设置的是自动增加,删除的时候自动增加的累计并没有清空,所以使用delete
删除数据的时候,后面再增加输入id还是在原来的基础上去增加
使用truncate
就会将id一起清空
update teacher set name='yyy' where id=1;
这句话的意思就是把id为1的人名字更新为yyy,基本都使用这样的一个规则
注意where后面的东西很重要,后面的东西如果是重复的,那就会出大问题
update teacher set name='yyy',address='chengdu' where id=1;
这样就可以更改多个值
那这样的话,是不是可以where后面加多个搜索条件呢?
update teacher set name='yyy',address='chengdu' or phone='199999';
确实是可以的,这样的话,就把符合这两个条件的一块修改了
update teacher set name='yyy',address='chengdu';
如果where后面没有加条件,这个时候你会悲剧的发现所有的数据都被更改了
有这么一个东西SQL注入,一起给你改了,所以这里的where一定要好好把握,避免悲剧的发生
现在只是改了一条,那我想改多条数据怎么办呢?
看上面where后面加多一点判断条件
怎么感觉我在操作excel表格一样,你别说这excel表格用起来还真是一门学问
查询表数据
查询表的数据是最难的
初学者一定要在查询这一块多下功夫
select phone,address from teacher
这个意思就是我只查这两个,别的我不看
可以看到这样的话,就只显示了phoneNumber和address
感觉还是需要进行多方面的补充,这样才能把基础的东西掌握的扎实
SQL语句区分
现在是属于稍微进阶的东西
其实说白了无非就是增删改查
三个东西:数据库,表,数据
这三个东西增删改查的方法都不一样
每个针对的点都不一样
有个说法DDL data definition language 数据库定义语言
create alter drop show
负责操作数据库
DML data manipulation language 数据库操作语言
select update insert delete
负责操作数据
DCL data control language 数据库控制语言,这是用来控制开发者权限的,一般会有很多个人来操作一个数据库
表结束语
在企业里,你作为实习生,你能用到这么东西已经很了不起了
到时候开发的时候肯定也不是这样做的
但是那都是后话了
这是一个日积月累的过程,学着学着就明白了,原来企业里面是这么回事
到现在最基本的东西就已经结束了
多去练习,一定要练习, 练习,练习
字符集的编码问题
到现在位置,插入进来的都是英文,或者是汉语拼音
有时候的插入中文的话显示是会有问题的
这也和控制台是有关系的
如果控制台使用的gbk的话,这时候就是可以正常显示的
使用gbk编码的时候要注意,mysql的客户端也要一定是gbk
但是在实际开发中的时候如果出现乱码,可能是你的mysql的编码使用的是utf8
在实际的开发过程中一定是uft8,这样才能符合国际标准
show variables like "character_set%";
这条命令可以看到当前的mysql各个部分都是使用的哪个编码方式,注意这里是双引号
这行意思是显示类似于后面这一串的东西,应该是可以指向字符集
不是哥们,mysql也有数据文档诶
http://dev.mysql.com/doc/refman/5.1/zh/charset.html
这文档我怎么看不懂???
如果去修改set character_set xxx=gbk;
想修改哪个就把哪个直接复制下来直接修改
还是那句话在公司里面千万不能使用gbk,一般情况会使用国际标准就是utf8
这也就是为什么windows不适合做开发
但是微软为开发人员服务下了很多的血本
逐渐给开发者提供了更多的便利,现在变得对开发人员友好了
所以这也就是开发的时候一般都用mac吗?
等日后主包挣米了整一个
数据文档
http://dev.mysql.com/doc/refman/5.1/zh/charset.html
micro_frank