一
表与数据库与MYSQL数据库服务器(table&database&mysqlserver)?
表由多行多列的数据组成 (一张表建立好表头,表结构就算建立好了,剩下的只剩往里填数据)
数据库由多张表组成 tables-->database
数据库服务器中有多个数据库 databases-->mysql server
二
什么是SQL语言?
是结构化查询语言(Structured Query Language)
它是一种what类型语言,我们平时使用的是who类型语言,如JAVA要想实现些功能,你必须告诉它,你这一步该怎么样,如果遇到什么情况又该怎么样。而SQL语言是what类型的,你直接告诉它你要什么,它就会给你返回值。
SQL语言分哪三类?
DML数据库操作语言,它约占平时操作的80%,是对已有数据进行查询、修改、删除的操作(其中查询又占它的80%),是站在使用者的角度。
DDL数据库定义语言,占15%,建立表、建立库、建立视图(建立时就需要定义结构,所以建立也叫定义),站在建设者的角度(项目经理建表就是项目经理的角度)
DCL数据库控制语言,占5%,控制数据库的权限,监视你有没有操作这个数据库的权限。当前用户有权查看哪些库,无权查看哪些,站在管理员的角度。
三
insert操作
行是数据库中最原子的单位,任何操作都是针对行的,即使是一列,或是多列也是基于对哪行的哪列进行操作。
可以插入指定列
也可以插入全部列
但是列和值一定要对应,不想添加的值可以不写,它会以NULL来填充
一张表建立后表结构是固定的,你可以插入全部列,也可以插入部分列。
语法:插入到哪张表,要插入哪几列,这几列都插入什么内容 (这里不用where id,如果你插入时没有指定插入的id,那么会自动递增,如果指定的id已经存在,会报错)
insert into user (id,name,age) values (3,'lilei',18);
如果想给所有列都添加值,可以把前面括号的列名省略
insert into user values(5,'Lucy',16);
查看表结构的语句:desc user;
update操作
语法:更新哪张表,修改成什么,更改哪条数据
例一 update user set age=16 where name='Lucy'; 更新修改的条件不一定非得是id,可以是name或其它
例二 update user set name='Lisi',age='28' where schoolcode='15';
非常严重的错误写法,没写要改哪条:
update user set age = 18; 这样写整个表的age都被改成了18,工作中要这样写,啥也别说,赶紧跑路吧。
*Oracle和MySQL等数据库一般可以设置新手模式,不写where条件不允许提交,以防数据丢失。
delete操作
在关系型数据库中,一行是最原子的单位,要删除只能删除一整行,如果只删除一个字段,那是修改,得用update,把你要删除的那行set成Null
所以在delete语法中不用写你删除的字段,因为一删就是一行,删除语句相对来说最简单。
语法:删除哪张表,的哪一行数据。
delete from user where id=9;
严重错误,忘记写条件!!
delete from user; 会把整个user表的数据都删光,删完接着跑路。。
select操作(占DML数据库操作语言的80%,也是最难的部分,要靠数据查询模型)
最简单的查询操作是select * from user; 但现实工作中不能用*,几条语句还好,现在工程当中都是几百万条数据,用*来查询,瞬间就把内存挤爆了,简直是胡闹,应该用哪条数据查哪条,只会select * from 的人,工资水平也就3K了。
语法:要查什么(哪几列),哪张表,第几行记录
select * from user where id=9;
查询数据的时候,你可以查询它的多行
select * from user where id=3;
select * from user where id>=3;
你还可以查它的哪几列
select name,age from user where id>=5;
查一列
select name from user where id=5;
数据库的操作都是对列内容进行操作,然后指定是对哪一行的列进行操作!