欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

高级查询(一)

程序员文章站 2022-03-22 13:20:58
数据类型 整型 int 小数 double 精确度要求高的 ———Decimal(18,4) 对应Java中的类型 BigDecimal 字符串:nvarchar(32) varchar char char:定长字符串(一旦设定了长度,无论真实内容有多少,都要占用指定长度的空间) varchar:可 ......

数据类型
 整型 int
 小数 double
 精确度要求高的 ———Decimal(18,4)
 对应Java中的类型  BigDecimal

  字符串:nvarchar(32) varchar  char
 char:定长字符串(一旦设定了长度,无论真实内容有多少,都要占用指定长度的空间)
 varchar:可变字符串
 nvarchar()防止乱码出现

varchar(n),nvarchar(n) 中的n怎么解释:
  nvarchar(n)最多能存n个字符,不区分中英文。
  varchar(n)最多能存n个字节,一个中文是两个字节。
所占空间:
  nvarchar(n)一个字符会占两个字节空间。
  varchar(n)中文占两字节空间,英文占一个。
n的取值范围:
  nvarchar(n)?? n的范围是:1与4000之间
  varchar(n)?? n的范围是:1与8000之间
n的大小是否会影响性能:
  varchar及nvarchar里的长度 n 不会影响空间大小及性能。除非n是max并且内容大于4000或8000
  设置n更多的是业务需要,如限制身份证只能输入18位,再多就报错,或者防止恶意攻击撑爆硬盘。对空间及性能都没有影响
n设置多大比较好:
  既然对空间及性能都没有影响,那我们只要考虑业务需要就可以了,我分析过微软的数据库,大都设置为:256,也会看到64,128,512,max等,可能是便于记忆吧。

varchar(n),nvarchar(n)存储空间举例解释:
  包含 n 个字符的可变长度 Unicode 字符数据。字节的存储大小是所输入字符个数的两倍。?
  两字段分别有字段值:我和coffee?
  那么varchar字段占2×2+6=10个字节的存储空间,而nvarchar字段占8×2=16个字节的存储空间。?
  如字段值只是英文可选择varchar,而字段值存在较多的双字节(中文、韩文等)字符时用nvarchar。
varchar和nvarchar如何选择?
  varchar在SQL Server中是采用单字节来存储数据的,nvarchar是使用Unicode来存储数据的.中文字符存储到SQL Server中会保存为两个字节(一般采用Unicode编码),英文字符保存到数据库中,如果字段的类型为varchar,则只会占用一个字节,而如果字段的类型为nvarchar,则会占用两个字节.
3.日期类型
DateTime

 

函数一定要加小括号!!!!

 

 

2. 创建数据库
create database 数据库名
 创建表
create table 表名(
列名 类型(int) 主键(primary key) 自增(auto_increment) 属性(not null),
);
 添加记录
insert into 表名(列名) values(值);
 约束添加:
 1.主键约束
alter table 表名1
add constraint pk_列名1 primary key 表名2(列名2);
 删除主键
alter table 表名 drop primary key

 2.外键约束
alter table `表名1` add constraint fk_表名1_表名2
foreign key (`表1中的列名`) references `表2`(表2中的列名);

 3.唯一约束
alter table 1表 add constraint  uk_l.1列 unique key(1.1列);

 4.添加默认约束
alter table 表名
alter column 列名 set default '默认值';

 5.检查约束(不起作用)
alter table 表名
add constraint ck_列名 check (条件);

 

3.不会设置外键
解析:1.找到外键表 1的一方是主表
      2.外键表中有非法数据
      3.主外键表中公共列的类型必须相同

4.什么是引擎?
解析:能让程序启动并执行的一个程序,也称之为驱动。

5.
 1.修改表名
将student改成student2
alter table 旧表名 rename 新表名
 2.添加列
alter table 1 add 1.1 varchar(32) not null;
 3.修改列名
alter table 表名 change 列名  新列名 (类型)bit not null;
 4.删除字段
alter table 表名 drop 字段名