SQL学习

一条语句执行 失败后,有的语句继续向下运行,有的不会,例如删除数据库失败后不会向下运行,但是删除数据表之后会向下运行,因此最好一条一条的运行,而不要自动化运行。

在下面状态栏,说明着现在连接的是那一个数据库。

图形删除的时候后,要勾选关闭现有连接,才行,一般是不勾选的。

 

创建一个数据库,create database student

删除一个数据库用 drop database student

删除一个表 drop table xxxx

创建表语法

CREATE TABLE table_name

(

column_name1 data_type(size),

column_name2 data_type(size),

column_name3 data_type(size),

....

);

注意字符串用单引号,不能用双引号,没有分号也没关系,列名是不用加单引号的,不当作字符串处理

可为空在后面添加null,不可为空就是not null

设置主键在后面添加primary key,如何在创建之后添加主键,那就要用到alter,这个以后再说。

自增就是在后面加上auto_increment

下面开始讲查询select,查询就是用select就直接在控制台输出,就是这样

查询语句基本格式:SELECT 列名,/* FROM 表名 (WHERE 条件组合 ),列,表不用字符表示,表名也可以是多个的

在where中,列表可以当变量使用,where中可以使用

比较运算符包括: = ,>,<,>=,<=,<>

逻辑运算符:NOT,AND,OR

确定范围运算符:BETWEEN AND, NOT BETWEEN AND

两个select嵌套的话要把select用括号括起来,jno=(select .....)

如果返回单条的话,用=,如果返回多条的话,用in

而 exists 与 in 最大的区别在于 in引导的子句只能返回一个字段,比如:

select name from student where sex = 'm' and mark in (select 1,2,3 from grade where ...)

,in子句返回了三个字段,这是不正确的,exists子句是允许的,但in只允许有一个字段返回,在1,2,3中随便去了两个字段即可。

这里说明一个比较方便的做法,点号,你可以用一个点来直接找到表中的某个特定的字段,而不用进行两次选择。但是如果有from的话点号基本上也是没用的。

分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句。

如果您使用的是 MS Access 和 SQL Server 2000,则不必在每条 SQL 语句之后使用分号,不过某些数据库软件要求必须使用分号。

select distinct 语句是为了选择不重复的语句,就是这样

go是SQLserver的特殊语句,官方说法是:GO只是SQL Server管理器(SSMS)中用来提交T-SQL语句的一个标志,我的理解是:GO相当于一个.sql文件的结束标记,GO 语句后面跟数字代表提交的次数

 

关于表关联,它用p.pname,spj.qty from spj inner join p on spj.pno = spj.pno,这时候表前缀就有用处了,我理解表关联就是暂时的把两个表组合为一个表,关联可以同时关联多个表,这样写:

select distinct spj.jno from spj

inner join s on spj.sno = s.sno

inner join j on spj.jno = j.jno

 

alert是用来修改结构的,例如修改列名,列属性,

ALTER TABLE table_name ADD column_name datatype 添加列

ALTER TABLE table_name DROP COLUMN column_name 删除列

ALTER TABLE table_name ALTER COLUMN column_name datatype 改变属性

 

而更新记录用update

UPDATE table_name

SET column1=value1,column2=value2,...

WHERE some_column=some_value;

 

delete是删除记录

DELETE FROM table_name

WHERE some_column=some_value;

同时删除多张表为

delete table_a, table_b from table_a inner join table_b on a.id = b.cat_id where a.id=6;

插入记录用update

第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:

INSERT INTO table_name VALUES (value1,value2,value3,...);

第二种形式需要指定列名及被插入的值:

INSERT INTO table_name (column1,column2,column3,...)

VALUES (value1,value2,value3,...);

 

排序的话用order by

ORDER BY column_name,column_name ASC|DESC;

就在select后面添加上就行,后面是升降序这样

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值