数据库--数据类型:http://t.csdn.cn/RtqMD
数据库--三大范式、多表查询、函数sql:http://t.csdn.cn/udJSG
在创建了数据库和数据库表之后,我们就可以在表中进行数据操作了。基础操作分为
添加
删除
修改
查询
以上4 种操作又简称为 CURD (Create ,Update ,Retrieve ,Delete )
插入数据的类型:
添加一行中所有列对应的数据,不写列名
添加一行中某些列对应的数据
一次性添加多行数据(批处理)
语法:
insert into 表名(列名A,列名B,...) values(列名A的值, 列名B的值, .....);
示例:
INSERT INTO emp(empid, ename, age, phone, email) VALUES (10001, '张三', 24, '13412345678', '[email protected]');
注意:表名后面跟了几个列名,在values中就需要有几个对应的数据值,数据与列需要对应,如果类型不匹配是无法添加成功的
语法:
insert into 表名(列名A,列名B,...) values(列名A的值, 列名B的值, .....) , (列名A的值, 列名B的值, .....) , ..... ;
示例:
INSERT INTO `test`.`emp`(`empid`, `ename`, `age`, `phone`, `email`) VALUES (10002, '王五', 22, '13512345678', '[email protected]'), (10003, '李四', 26, '15412345178', '[email protected]')
空字符串是有字符串内容,但是长度为0
null 则表示列中没有数据
语法:
select * / 需要查询的列名 from 表名;
星号代表指定表中的所有字段,但是并不推荐,因为在大批量数据下非常耗时。很多场景中仅需要部分字段,而且字段的先后顺序还不完全一致。
列的顺序一般是列在表定义中出现的顺序。但有时候并不是这样的,表的模式的变化(如添加或删除列)可能会导致顺序的变化。虽然使用通配符看起来很省事,不用明确列出所需列,但检索不需要的列通常会降低检索和应用程序的性能。
实际开发时,有的场景对列出现的顺序是有要求的,这个时候也不要使用星号。
示例:
select * from emp;
不指定列时,星号将所有列的数据都进行检索
select empid, ename, age, phone, email from emp;
查询时,显示指定列的数据
使用别名的常见:
表名和列名名称太长,不便输入或者容易写错
有相同的名称
使用别名后,调用时需要使用别名,而不是原来的名字
表使用别名
给表起别名非常简单,在表名后空格,然后写别名即可
select e.empid, e.ename, e.age, e.phone, e.email from emp e;
列使用别名
列起别名的格式如下:
列名 (空格)as 别名
示例:
select empid as eid , ename, age, phone, email from emp;
也可以不添加as,中间添加一个空格即可
select empid 编号 , ename, age, phone, email from emp;
语法:
UPDATE 表名 SET 更新数据的列名 = 新值,更新数据的列名 = 新值... where 条件;
示例:
UPDATE EMP SET ENAME = 'JACK' WHERE empid = 10001;
UPDATE EMP SET ENAME = 'JACK', AGE = 33 WHERE empid = 10001;
DELETE语句从表中删除行,甚至是删除表中所有行。但是,DELETE不删除表本身
语法:
delete from 表名 where 条件;
示例:
delete from emp where empid = 10001;
如果想从表中删除所有行,不要使用DELETE。可使用TRUNCATE TABLE语句,它完成相同的工作,但速度更快(TRUNCATE实际是删除原来的表并重新创建一个表,而不是逐行删除表中的数据) 。
SQL 语句结束的时候需要写分号正确结束
SQL 语句本身不区分大小写,但是数据分大小写
问题:表数据的操作使用的是什么 SQL 语言 ?