码迷,mamicode.com
首页 > 数据库 > 详细

第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍

时间:2016-08-10 00:33:22      阅读:297      评论:0      收藏:0      [点我收藏+]

标签:

16-数据库开发及ado.net

数据库SQl,创建数据库和表,增删改语句,约束,topDistinct,聚合函数介绍

SQL语句入门(脚本、命令)

SQL全名是结构化查询语言(Structured Query Language)

SOL语句是和DBMS“交谈”专用的语言,不同的DBMS都认SQL语法。

Sql中字符串使用单引号:通过写俩个单引号来转义一个单引号。

Sql中的注释“——” 单行注释比较好

判断俩个数据是否相等使用=(单等号)

在sql语句中sql代码不区分大小写

SQL主要分为:

DDL(数据定义语言、建表、建库等语言)(例:Create Table、Drop Table、Alter Table)

DML(数据操作语言)(例:Select、Insert、Update、Delete)

DCL(数据库控制语言)(例:GRANT授权、REVOKE取消授权)

实例代码:

--1.创建一个数据库

create database School;

--删除数据库

drop database School;

--创建数据库的时候指定一些选项

create database School

on primary

(

name=‘School‘,

filename=‘D:\Desktop\置心一处,无事不成。\二、编程\(四)笔记\黑马程序员.NET视频教程-Time\第课-数据库开发及ado.net\School.mdf‘,

size=5mb,

--filegrowth=10mb,

filegrowth=10%,--按照文件的百分比增长

maxsize=100mb

)

log on

(

name=‘School_log‘,

filename=‘D:\Desktop\置心一处,无事不成。\二、编程\(四)笔记\黑马程序员.NET视频教程-Time\第课-数据库开发及ado.net\School_log.ldf‘,

size=3mb,

filegrowth=3%,

maxsize=20mb

)

 

--切换数据库

use School;

--在School数据库中创建一个学生表.TableStudent

Create table TblStudent

(

   --表中列的定义在这对小刮号中

   tSId int identity(1,1)  primary key,

   tSName nvarchar(10) not null ,

   tSGender bit not null,

   tSAddress nvarchar(300),

   tSPhone varchar(100),

   tSAge int,

   tSBirthday datetime,

   tSCardId varchar(18),

   tsClassId int not null--最后一行不加“,”

)

go

--创建一个班级表

create table TblClass

(

tclassId int identity(1,1) primary key,

tclassName nvarchar(50) not null,

tclassDesc nvarchar(100)

)

介绍生成脚本工具

数据库→右键→任务→生成脚本

可选择生成什么样的脚本

  1. 选择生成的数据库版本
  2. 是否包含某些脚本等
  3. 是否生成带数据的脚本(2005、2008都有该功能Express没有。)

简单数据插入INSERT

--使用insert语句向数据库的表中插入数据

select * from TblClass

--1.insert向表中插入一条数据

insert into TblClass(tclassName ,tclassDesc ) values(‘Time第三期‘,‘珍惜时光‘)

--向自动编号列插入数据

set identity_insert tblClass on

insert into TblClass(tclassId ,tclassName ,tclassDesc ) values(101,‘Time第三期‘,‘珍惜时光‘)

set identity_insert tblClass off

--Ctrl+R 快捷键

--如果要向该表中的除了自动编号以外的其它所有列都插入数据,则可以省略列名

insert into TblClass values(‘Time第四期‘,‘时光不老,你我不散‘)

 

select * from TblStudent

 

--向TblStudent表中插入数据

----表中列的定义在这对小刮号中

--   tSId int identity(1,1)  primary key,

--   tSName nvarchar(10) not null ,

--   tSGender bit not null,

--   tSAddress nvarchar(300),

--   tSPhone varchar(100),

--   tSAge int,

--   tSBirthday datetime,

--   tSCardId varchar(18),

--   tsClassId int not null--最后一行不加“,”

 

insert into TblStudent(tSName,tSGender,tSAddress,tSPhone,tSAge,tSBirthday,tSCardId,tsClassId)

values(‘Time001‘,0,‘上海区‘,‘1778918281‘,18,‘1989-10-11‘,‘78267287282819829X‘,1)

 

insert into TblStudent

values(‘Time001‘,0,‘上海区‘,‘1778918281‘,18,‘1989-10-11‘,‘78267287282819829X‘,1)

 

--insert语句向表中那些不允许为空的列插入数据(tsClassId 不允许为空,必须插入数据)

insert into TblStudent(tSName,tSGender ,tSAddress ,tsClassId )

values(‘Time002‘,0,‘上海‘‘郊区‘,2)

--null值就是表示空值

 

--insert into语句一次只能向表中插入一条记录,如果通过一条语句向表中插入多条记录,

--则需要使用其它方式insert语句。

 

select * from TblClass

--通过一条sql语句向表中插入多条sql语句

insert into TblClass(tclassName ,tclassDesc)

select ‘Time第五期‘,‘珍惜时间,岁月不老‘ union

select ‘Time第五期‘,‘珍惜时间,岁月不老‘ union

select ‘Time第五期‘,‘珍惜时间,岁月不老‘ union

select ‘Time第五期‘,‘珍惜时间,岁月不老‘ union

select ‘Time第五期‘,‘珍惜时间,岁月不老‘ --最后一行不需要union

 

create table TblClassBak

(

ClsId int identity(1,1) primary key,

ClsName nvarchar(50) not null,

ClsDesc nvarchar(50) null

)

 

select * from TblClassBak

--将TblClass表中的数据导入(复制)到TblClassBak表中

--也是使用Insert语句

--insert into表(列) select 列,列from 表

insert into TblClassBak (ClsName ,ClsDesc )

select tclassName,tclassDesc from TblClass

--N前缀,在存储中文字符时候,必须加大写字母N。

简单数据更新(数据修改)

use School

 

select * from TblClass

--更新语句

update 表名 set 列名=值,列名=值 where 条件

--在编写更新语句的时候,如果没有where条件则表示将表中的所有数据都更新为指定的数据。

--所有学生年龄加

update Student set sAge=sAge+1

--这么写tclassName=‘▲‘,表示这列的值变为一个‘▲’

--而我们的要求是在原来的列的基础上加上‘▲’

update TblClass set tclassName=tclassName +‘▲‘ where tclassId <100

--更新多列

update TblClass set tclassName=tclassName +‘▲‘,tclassDesc =tclassDesc+‘★‘ where tclassId =100

--where中可以使用其它的运算符:(||)or ,<>(!=), (&&)and,(!)not

简单数据删除(DELETE)

删除表中全部数据:delete from Student

Delete 只是删除数据,表还在,和Drop Table不同

Delete 也可以带whre子句删除一部分数据:例:delete from student where sAage >20

Truncate table student 的作用跟delete from student 一样

都是删除student表中的全部数据,区别在于:

1.  Truncate语句非常高效。由于truncate操作采用按照最小方式记录日志,所以效率比较高。对于数百万条数据使用truncate删除只要几秒钟,而使用delete需要几个小时。

2.  Truncate语句会把表中的自动编号重置为默认值(恢复到种子的位置),而通过delete删除表中的数据后,还是从之前的数据继续添加。

3.  Truncate语句不触发delete触发器。

4.  Truncate 只能将表中所有数据删除,无法添加where,不能根据条件来删除。

--复习

insert into 表(列) values(值)

update 表 set 列=值,列=值 where ...

--删除语句

delete from 表名  where ...

select * from TblClass

--删除tclassId为偶数的数据

DELETE FROM TblClass where tclassId%2=0

--删除表中全部数据

delete from TblClass

truncate table TblClass

--删除表

drop table TblClass

第16课-数据库开发及ado.net-数据库SQl,创建数据库和表,增删改语句,约束,top和Distinct,聚合函数介绍

标签:

原文地址:http://www.cnblogs.com/Time_1990/p/5755130.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!