1、SQL基础内容介绍从今天开始,就要正式和SQL语句接触了。我们主要以MySQL的语句举例说明,其它类型的RDBMS语句也大同小异,只有个别地方有所区别。SQL书写基本规则1.每一条语句,最后必须以分号(;)结尾。2.语句的关键字(具有一定功能)、表名、列名都对大小写不敏感,也就是说不区分大小写。尽管如此,为了便于理解,有时也可将关键字和表的首字母大写。3.语句的内容之间,要用空格分开,不要连在一起写。数据库和表的创建首先我们当然要建立一个自己的数据库了,像之前那样用命令行登录MySQL。然后用create database name;语句来建立你数据库,这里的name就是你要创建的库的名字:这
2、里我们建立了一个名为“shell”的数据库。库的名称包括之后的表名、列名,只能用英文字母、数字和下划线(_)来创建。之后我们就要在库里面创建表了,需要先声明表名、列名等其他内容:如上图,我们创建了一个叫做cargo的表,下面有3列内容:最左边是列的名字,可以看到共有6列,中间是列的数据类型,右边是列的约束条件,最下面一行primary key也是约束条件。其中,列的数据类型必须声明。上图共出现了4种数据类型,我们挨个来看。首先是CHAR(3),代表固定长度字符串,括号中的3代表字符串的最大长度为3,若长度小于3,会自动补齐。其次是DATE,代表日期类型,意思就是date这一列都是日期类的数据。
3、接着是VARCHAR(50),代表可变长度字符串,括号中的50同样表示最大长度为50,但若长度小于50,不会自动补齐。最后是INTEGER,代表整数型,意味着这一列只能输入整数,不能输入小数。再来看看约束的设置,上图中id、name、type这三列设置了NOT NULL的约束,意为这几列的数据不能为空,必须得填上。最后一行PRIMARY KEY是主键约束,主键保证这一列数据唯一。也就是说id列中的数据不能重复,唯一确定一行。至此,我们就将表格的框架搭好了,下面就该往“shell”表里插入数据了:start transaction表明要开始的事务,最后的commit表示提交事务。中间就是我们要插
4、入的语句,insert into + 表名 + values(数据);插入时都是按一行一行来插,所以数据必须与其对应的列的类型相匹配。在表名和数据值之间我们省略了列名,意味着我们要对所有的列插入数据;如果只想对个别列插入数据,在表名后面加上对应的列的名字即可。增删改查插入数据后,我们如何查看表中的内容呢?可以用以下语句来实现:select 后面的*代表选择所有列(数据量较大时,不建议这样写),一般我们选取其中几列就可以:如果这个表作废,我们想删除掉呢?可以使用drop table shell;需要注意的是,删除掉的表是无法恢复的,所以要谨慎操作。如果想在表中添加某些列呢?alter table
5、 shell add column 列名 数据类型;删除某一列:alter table shell drop column 列名;改变表的名字:rename table shell to 新表名;为列设定别名有时为了方便查询和便于理解,我们会给列名设定一个其他的名字。只需在原列名后加入AS关键字即可:注意,如果别名是中文,必须用双引号(英文状态)括起来才可以。as关键字同样不区分大小写。select语句后也可以有常数:如上图,结果会将每一行都加入此常数。这个常数可以是字符串、数字,也可以是日期。删除重复行如果我想知道这个表总共有多少种类型的数码产品呢?我们需要用distinct关键字来去重:可以看到,去重后,共有5种类型。原来我们有6行数据,有2行是重复类型。如果distinct作用于多列,只有这几列的行数据完全一致,才会被删除。where语句筛选行之前我们的查询结果都是返回的所有行,如果我只想要其中一部分的数据呢?比如:上图只返回了电脑类型的一些列,而其他手机、耳机等类别被where语句筛选掉了,where关键字后面跟一些条件表达式即可。最后需要注意的是,SQL中语句的书写顺序是固定的,不可随意更改。正确的顺序如下:select.from.where.;一个语句最后的分号必须要写,切记!今天的内容到此结束,SQL语句的长征才刚刚开始。