知识点总结
2.1管理数据库
2.1.1创建和处理数据库
CREATE DATABASE 数据库名;
注意:数据库名在服务器中必须是唯一的,并且符合标识符规则。
标识符规则:
第一个字符必须是Unicode标准所定义的字母包括(a-z,A-Z),下划线(-),at符号(@),数字符 号(#)。
后续符号可以是字母,十进制数字,@符号,$符号,#符号,下划线—。
标识符不能是所用RDBMS的保留字。
不允许嵌入空格或其他特殊字符。
创建名为Instant的数据库的SQL语法为:
CREATE DATABASE Instant;
2.1.2连接到数据库
在SQL Server中,用USE命令连接到一个已存在的数据库:
USE 数据库名;
2.1.3删除数据库
DROP DATABASE 数据库名;
2.2数据类型
重要的数据类型列举:
类型 | 字节大小 | 用途 |
TINYINT | 1 | 极小整数值 |
SMALLINT(short) | 4 | 小整数值 |
MEDIUMINT | 小整数值 | |
INT | 4 | 整数值 |
BIGINT | 8 | 大整数值 |
类型 | 字节大小 |
REAL | 4 |
FLOAT | 8 |
DECIMAL(M,D) | 17 |
NUMERIC(M,D) | 17 |
类型 | 大小 | 范围 | 用途 |
CHAR | N | 0-255 | 字符型 |
VARCHAR | N | 0-65535 | 字符型 |
TEXT | ... | ... | ... |
... | ... | ... | ... |
类型 | 字节大小 |
DATETIME | 8 |
SMALLDATETIME | 4 |
2.3管理表
2.3.1创建表
CREATE TABLE <表名>;
<列名><列的数据类型>[<列的约束>];
2.3.2删除表
DROP TABLE<表名>;
我的疑点:不能综合运用表,复制表,不懂为什么要删除表,关于删除,还有点模糊。
复制表
下面的语句创建一个名为My_Friends的新表,该表是复制了Friend表的数据和结构
SELECT * INTO My_Friends FROM Friend;
如果只复制表结构,不复制数据:
SELECT * INTO My_Friends FROM Friend WHERE 1=0;
上课示例代码:
/*创建数据卡库*/
CREATE DATABASE myfirstdb; #创建一个数据库
USE myfirstdb; #使用数据库
CREATE DATABASE day02; #数据在服务器中只能唯一.
CREATE DATABASE dao% ncj;
DROP DATABASE myfirstdb; #删除数据库
/*创建表*/
USE day02; #注意切换数据库
CREATE TABLE shujuleix( #create table 表名
id INT, #数据库定义先写变量,后申明你的数据类型。
username CHAR(100),
pwd VARCHAR(100),
gjl INT,
fyl MEDIUMINT,
jingyan BIGINT
); #分号表示当前语句结束。
DROP TABLE shujuleix; #删除数据表
CREATE TABLE test1(
grade DECIMAL(5,1),
num TINYINT
);
INSERT test1 VALUE(290.123452);
SELECT * FROM test1;
DROP TABLE test1;
CREATE TABLE sss(
fangjia DATE
);
CREATE TABLE rr(
backschool DATETIME,
years YEAR,
riqi VARCHAR(100)
);
SELECT * FROM rr; #查询语句
DROP TABLE rr;
INSERT INTO rr
VALUE('2014-01-01','2014-01');
SELECT * FROM sss;
/*浅拷贝*/
SELECT * FROM class02;
/*拷贝表的结构*/
# 创建一个表,like是复制表结构。
CREATE TABLE class03 LIKE class02;
SELECT * FROM class03;
/*深拷贝*/
CREATE TABLE deepcopy SELECT * FROM class02;
SELECT * FROM deepcopy;
/*通过create语句拷贝结构*/
CREATE TABLE deepcopy2
SELECT * FROM class02
WHERE 1=0;
SELECT * FROM deepcopy2;