想飞的鱼 Java Dev Engineer

Sql Note1

2016-08-09


layout: post title: 数据库基本语句 category: SQL tags: sql1 keywords: sql description: 数据库 DAl ,DDl ​——-

#Sql Server安装问题

​ Sql Server 2012 安装成功后sa账号能正常登录,但是jdbc连接不上去,报 tcp/ip端口错误

​ 解决方法:sql server 网络配置工具中,配置工具——>SqlServer配置管理器——>Sql Server 网络配置——>tcp/ip属性——>ip地址——>IPAll——>tcp动态端口改为0,tcp端口改为 1433

#Sql Server 上的基本数据库语句

#Sql Server 导入大文件的数据 cmd shell状态下 : 右键数据库——> power shell sqlcmd -i c:\sql文件名.sql ​

很容易玩记,好记性不如烂笔头

数据库基本语句

启动服务命令:net start mssqlserver 停止服务命令:net stop mssqlserver

##通过sql语句来创建数据库 /*语法: create database 数据库名 */

##判断是否已经存在此数据库,如果存在,就删除 ##删除:drop 删除的类型 名称

创建数据库

sysdatabases:是存在master数据库中的
if exists(select *from sysdatabases where name ='test190')
	drop database test190
create database test190
on --primary
(
	name = 'test190_data', --逻辑名称
	filename = 'c:\test190_data.mdf', --物理名称(路径)
	size = 3mb, --文件初始大小
	maxsize = 10mb,  --限制文件最大值
	filegrowth = 1mb --文件增长大小
)
log on
(
	name = 'test190_log',
	filename = 'c:\test190_log.ldf',
	size = 1mb,
	maxsize = 5mb,
	filegrowth = 10%
)

修改列

EXEC sp_rename 't_grade.[desc]', 'grade_desc', 'COLUMN'

通过sql创建表

/*语法:
create table 表名
(
	列名 数据类型 列的特征,
	列2 数据类型 列的特征,
	......
)
*/
--指定使用的数据库
use test190

--sysobjects:每个数据库都存在的表
if exists(select * from sysobjects where name = 'studentinfo')
	drop table studentinfo
create table studentinfo
(
	id int identity(1,1) not null primary key,
	name varchar(20),
	sex varchar(2),
	age int
)

修改表:新增列 alter table studentinfo add classid int not null

修改列:修改列属性 –varchar如果不指定长度,默认是1个字节 alter table studentinfo alter column sex varchar(20) 修改列:修改列名:

/*:标识列是不允许修改的 alter table studentinfo alter column id int identity(1,1) */ ​

修改表:删除列 alter table studentinfo drop column classid

/*数据完整性: 1.域完整性 非空约束 数据类型约束 默认值约束 check约束

2.实体完整性 主键约束 唯一键约束

3.引用完整性 外键约束

4.自定义完整性 */ #修改数据库名 表名 列名

EXEC sp_renamedb ‘Old_name’,’New_name’; EXEC sp_rename ‘customers’, ‘custs’ EXEC sp_rename ‘customers.[contact title]’, ‘title’, ‘COLUMN’

通过sql脚本创建约束

语法:
ALTER TABLE 表名  
     ADD CONSTRAINT 约束名  约束类型  具体的约束说明

#约束 约束名的取名规则推荐采用:约束类型_约束列 主键(Primary Key)约束:如 PK_stuNo 唯一(Unique Key)约束:如 UQ_stuID 默认(Default Key)约束:如 DF_stuAddress 检查(Check Key)约束:如 CK_stuBornDate 外键(Foreign Key)约束:如 FK_stuNo */

主键约束

alter table studentinfo add constraint PK_id primary key (id)

默认值约束

alter table studentinfo add constraint DF_sex default(‘男’) for sex

唯一键约束

alter table studentinfo add constraint UQ_name unique(name)

check约束

alter table studentinfo add constraint CK_age check(age>=30 and age<=40) ​

添加外键约束

create table classinfo ( classid int primary key identity(1,1), classname varchar(20) ) alter table studentinfo add constraint FK_classid foreign key (classid) references classinfo(classid)

删除约束

alter table studentinfo drop constraint CK_age

##修改表字段名(mysql)

alter table studentinfo change stuName stu_name varchar(255)

##导出数据库(mysql)

mysqldump -uroot -p123 test > test.sql

MySQL查询时指定使用索引

指定索引,有表 student, 索引 idx_student_name 情况下

select name,phone,status from student use index(idx_student_name) where name=’小明’


Comments

Content