一条语句执行 失败后,有的语句继续向下运行,有的不会,例如删除数据库失败后不会向下运行,但是删除数据表之后会向下运行,因此最好一条一条的运行,而不要自动化运行。
在下面状态栏,说明着现在连接的是那一个数据库。
图形删除的时候后,要勾选关闭现有连接,才行,一般是不勾选的。
创建一个数据库,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后面添加上就行,后面是升降序这样