表:

学生(*学号,姓名,性别,年龄,专业)

create table student(

   sno char(13) primary key,

   sname varchar(20) not null,

   ssex char(2),

   sage smallint,

   sdept varchar(30)

);

课程(*课程号,课程名,学分)

create table course(

   cno char(4),

   cname varchar(40) not null,

   ccredit smallint not null,

   我们可以将字段的定义和主外键的定义分开

   primary key (cno)

);

选课(学号,课程号,分数)

create table sc(

   sno char(13),

   cno char(4),

   grade smallint,

   primary key (sno,cno),--定义联合主键

   foreign key (sno) references student(sno),

   constraint FK_sc_cno foreign key (cno) references course(cno)

);

创建一个用户表

create table tb_user(

   userid int identity(1,1),【设置整型字段自动增长】

   username varchar(20) not null,

   userpass varchar(16) not null,

   groupid int

);

创建用户组表

create table tb_group(

   groupid int primary key identity(1001,1),

   groupname varchar(30) not null

);

insert(增加)

使用 insert 语句向表中插入数据。

insert into table [(column [, column...])]

values (value [, value...]);

插入的数据应与字段的数据类型相同。

举例:

方法一:不指定列,插入所有字段

insert into student values('','kangji','男',22,'计算机科学学院');--SQLServer总是尝试转化为相同的类型

insert into student values(20100402,'张三','男',22,'计算机科学学院');

方法二:指定列,插入部分字段

insert into student (sno,sname) values('','李四');

注意:

1)      数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。

2)      在values中列出的数据位置必须与被加入的列的排列位置相对应。

3)      字符和日期型数据应包含在单引号中。

4)      插入空值,不指定或insert into table value(null)

注意:在SQLServer 中,''=null; ' '=null; '   '=null;

批量插入数据

insert into u(username,userpass) select sname,sno from student where ssex='男'; 

update(修改)

使用 update语句修改表中数据。

update 表名 set 列名=表达式[,列名=表达式 ...] [where where_definition]   

update语法可以用新值更新原有表行中的各列。

set子句指示要修改哪些列和要给予哪些值。

update student set sname='康吉' where sno='20100401';

update student set sname='康吉',sage=23 where sno='20100401';

where子句指定应更新哪些行。如没有where子句,则更新所有的行。

修改还有 null 值的数据 is null

select * from student where ssex is null;

delete(删除)

使用 delete语句删除表中数据。

delete from 表名 [where where_definition]

如果不使用where子句,将删除表中所有数据。

delete语句不能删除某一列的值(可使用update对值置null)

使用delete语句仅删除记录,不删除表本身。如要删除表,使用【drop table表名】语句。

同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应该始终不要忘记这个潜在的问题。

删除表中全部数据

delete table 表名;

删除表中指定数据

delete from student where xh='A001';

级联删除和更新

create table class(

   id int primary key,

   name varchar(10)

);

create table student(

   id int primary key,

   class_id int references class(id) on delete/update cascade

);

alter table student add constraint FK_classid foreign key (class_id) references class(id) on update cascade on delete cascade

sql server 增删改(查太多了)的更多相关文章

  1. MS SQL Server 增删改查

    数据插入 语法:INSERT INTO Table_name(field1,field2……fieldN) values(value1,vlaue2,…valueN) 单行插入用户类型 INSERT ...

  2. 【黑马Android】(04)数据库的创建和sql语句增删改查/LinearLayout展示列表数据/ListView的使用和BaseAdater/内容提供者创建

    数据库的创建和sql语句增删改查 1. 载入驱动. 2. 连接数据库. 3. 操作数据库. 创建表: create table person( _id integer primary key, nam ...

  3. python入门23 pymssql模块(python连接sql server增删改数据 )

    增删改数据必须connect.commit()才会生效 回滚函数 connect.rollback() 连接数据库 ''' dinghanhua sql server增删改 ''' import py ...

  4. 数据库基本查询语句(SQL常用增删改查语句 简单复习 mark)

    SQL常用增删改查语句 1增 1.1[插入单行]insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) ...

  5. 基本 SQL 之增删改查(一)

    上篇文章,我们介绍了数据的基本 DDL 语句,你应当具备基本的创建数据库.数据表的 SQL 语句,以及表字段的基本数据类型的熟知. 那么本篇就来总结总结大家日常最频繁接触到的 DDM 语句,也就是基本 ...

  6. web sql 基本操作 - 增删改查

    不喜欢看md原文的 可以访问这个链接:http://note.youdao.com/noteshare?id=6a91e3dea7cdf5195bb0e851d9fcb5a5 # web sql 增删 ...

  7. SQL数据库增删改查

    数据类型 运行cmd 输入net start MSSQLserver 启动数据库服务 输入net stop MSSQLserver     关闭数据库服务 输入net pause MSSQLserve ...

  8. MySQL基础SQL命令---增删改查

    1.表操作: create table tableName (id int(6) not null primary key auto_increatment,name varchar(10) not ...

  9. sql语句增删改查与子查询

    修改表 修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table `demo01` rename `demo02 ...

随机推荐

  1. Spring Boot2 系列教程(二十)Spring Boot 整合JdbcTemplate 多数据源

    多数据源配置也算是一个常见的开发需求,Spring 和 SpringBoot 中,对此都有相应的解决方案,不过一般来说,如果有多数据源的需求,我还是建议首选分布式数据库中间件 MyCat 去解决相关问 ...

  2. JavaSE语法

    二.JavaSE语法(上) 1.Java 有没有 goto 语句? goto 是 Java 中的保留字,在目前版本的 Java 中没有使用.根据 James Gosling(Java 之父)编写的&l ...

  3. strGame:博弈论,trie

    挺有意思的一道题.初探博弈论. 最好自己思考? 我们先考虑只有1轮游戏的情况. 这题明显要在字符串上一位一位地走,所以对字符串建立起trie. 最终建立起的trie的叶节点就是必败位置了. 对于非叶节 ...

  4. 0818NOIP模拟测试25——B卷简记

    幸亏考场上没考这个,T1结论T2不会T3板子.估计会死的更惨 T1是学长讲过的Cat变式,沿直线y=x+1翻折方案数相减,现推,15分钟弄出来没什么问题. 只要不要把m,n读反就行. T3是个tarj ...

  5. NOIP模拟 5

    考试的时候相当浮躁,而且脑子并不工作 T1看了几眼,觉得没思路,先skip T2一打眼,满足条件的最大值,二分!(然后就死了,根本没想有没有单调性) T3找了半天规律,一开始自己手模的K3都过不了样例 ...

  6. python学习之【第十四篇】:Python中的装饰器

    1.什么是装饰器? 器即函数 装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 2.遵循的原则 装饰器必须遵循以下两个原则: 不修改被装饰函数的源代码(开放封 ...

  7. MySQL系列:走进数据库,相关概念你都明白吗?

    数据库,一个我们常常提到的名词,但是你有没有想过,它到底是什么意思呢,而我们常说的 MySQL.Oracle 等又到底指什么呢? 数据库 数据库(DataBase),简称 DB,是数据库是存储数据的集 ...

  8. java中 equals和==区别

    一.java当中的数据类型和“==”的含义: 基本数据类型(也称原始数据类型) :byte,short,char,int,long,float,double,boolean.他们之间的比较,应用双等号 ...

  9. Python 基础 三 反射

    Python 基础 三 反射 今天我们先介绍一下反射这个概念,啥是反射?反射就是自己检测自己.在我们Python的面向对象中的反射是啥意思呢?就是通过字符串的形式操作对象相关的属性.python中的一 ...

  10. .NET Core 3.0 单元测试与 Asp.Net Core 3.0 集成测试

    单元测试与集成测试 测试必要性说明 相信大家在看到单元测试与集成测试这个标题时,会有很多感慨,我们无数次的在实践中提到要做单元测试.集成测试,但是大多数项目都没有做或者仅建了项目文件.这里有客观原因, ...