zoukankan      html  css  js  c++  java
  • 创建数据库和表相关的SQL语句

                                                                

    SQL server注释语句有两种:

                                 一种是单行注释,一种是多行注释。

    ********************

    单行注释用:--注释一行内容

    多行注释用:/*

                *注释

                *多行内容

               */

                                                                

    创建数据库:

    语句如下:

    /*创建数据库主文件
       create database student:新建数据库逻辑名称为student
       filename='d:stduent_data.mdf':数据库文件保存路径和名字。
       on primary:primary—默认文件组,表示表是建立在主文件组上,可以省略.
       size=3:数据库文件初始大小为3MB,
       maxsize=unlimited:最大长度无限制
       filegrouwth=1,自动增长量为1
    */
    /*创建数据库日志文件
       
       name=student_log:日志逻辑名称为student_log
       size=1:日志文件初始大小为1MB
       maxsize=20,日志文件最大为20MB
       filegrowth=10%,日志自动增长量10%
    */ 
    --创建数据库stuent  create database student on primary ( name=student_data, filename='d:stduent_data.mdf', size=3, maxsize=unlimited, filegrowth=1 )
    --创建日志文件
    log on ( name=student_log, filename='d:student_log.ldf', size=1, maxsize=20, filegrowth=10% )

    删除数据库

    由于SQL Server将数据库的清单存放在master系统数据库的sysdatabases表中,

    所以我们使用master数据库查看该表是否存在于该数据库中就可以了:

    语句如下:

    --删除数据库student
    use
    master go if exists(select * from sysdatabases where name='student') drop database student go

                                                             

     1.创建表:

    CREATE TABLE <表名>(

              <列名><数据类型>[列级完整性约束条件],

              <列名><数据类型>[列级完整性约束条件],

              ........                          ,

                              [表级完整性约束条件],        

    建表的同时通常还可以定义与该表有关的完整性约束条件,
    这些完整性约束条件被存入系统的数据字典中,
    当用户操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。
    如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。
    数据类型 含义
    CHAR(n) 长度为n的特长字符串
    VARCHAR(n) 最大长度为n的变长字符串
    INT 长整数(也可以写作INTEGER)
    SMALLINT 短整数
    NUMERIC(p,d) 定点数,由p位数字(不包括符号、小数点)组成,小数后面有d位数字
    REAL 取决于机器精度的浮点数
    Double Precision 取决于机器精度的双精度浮点数
    FLOAT(n) 浮点数,精度至少为n为数字
    DATE 日期,包含年月日,格式为YYYY-MM-DD
    TIME 时间,包含一日的时、分、秒,格式为HH:MM:SS

    建stu_info表:

    --建表
    /*
       PRIMARY   KEY 主键,将stu_id设为主键
       identity(1,1),自增列,标识为1,自增长度为1.
    */
    use student
    go
    if exists (select * from sysobjects where name='stu_info')
    drop table stu_info
    create table stu_info(
      stu_id int not null identity(1,1) primary key,
      name nvarchar(20)not null,
    age char(2) null, sex
    char(2) null, birthday date null, );

                                                                       

    2.修改stu_info表:

    ALTER TABLE <表名>

    [ADD <新列名><数据类型>[完整性约束]]

    [DROP<完整性约束名>]

    [ALTER COLUMN<列名><数据类型>];

    其中<表名>是要修改的基本表,ADD子句用于新增加新列和新的完整性约束条件,

    DROP子句用于删除指定的完整性约束条件,

    ALTER COLUMN 子句用于修改原有的列定义,包括修改列名和数据类型。

    如:

    1.向stu_info表中增加“家庭住址”列,数据类型为nvarchar(30)

    2.将stu_info表中年龄的数据类型由字符型改为整型。      

    语句如下:

    --修改stu_info表
    alter table stu_info add address nvarchar(30)
    alter table stu_info alter column age int

                                                                      

    3.删除stu_info表

    DROP TABLE <表名>

    --删除stu_info表
    drop
    table stu_info;

                                                                     

    4.插入stu_info表:

    INSERT INFO<表名>[(<属性列>)][<属性列>...]VALUES(<常量1>[,<常量2>]...);

    如:插入id:1001,姓名:星云 年龄:18, 性别:男 生日:19920306 地址:河南安阳

    --插入stu_info表
    set identity_insert stu_info on
    INSERT INTO stu_info(stu_id,name,age,sex,birthday,address) VALUES('1001','星云','18','','19920306','河南安阳')

                                                                      

    5.更新stu_info表:

    UPDATE <表名> SET<列名>=<表达式>[,<列名>=<表达式>]...[WHERE <条件>];

    如:更新stu_info表,把id为1001的年龄设为23

    --更新stu_info表
    update stu_info set age=23 where stu_id='1001'

                                                                      

    6.查询stu_info表:

      SELECT [ALL |DISTINCT]<目标列表达式>[,<目标列表达式]...

      FROM <表名或视图名>[,<表名或视图名>]...

      [WHERE <条件表达式>]

      [GROUP BY <列名1>][HAVING <表达式>]]

      [ORDER BY <列名2>][ASC|DESC];

    查询stu_info表所有内容:     

    --查询stu_info表
    select *
    from stu_info;

                                                                      

    7.添加SQL登录账户,以及删除SQL登陆账户

    添加SQL登录账户:xingyun,密码为123456

    /*--添加SQL登录账户--*/
    -- 添加账号:xingyun,密码为123456
    exec sp_addlogin 'xingyun', '123456'

    添加student数据库登陆账户:xingyun密码:123456

    /*--在student数据库中添加用户(只能添加SQL登陆账户)--*/
    use student
    go
      exec sp_grantdbaccess 'xingyun','123456'

    -- 提示:SQL Server 中的dbo用户是具有在数据库中执行所有活动权限的用户,表示数据库的所有者(owner),一般来说,
    -- 如果创建了某个数据库,就是该数据库的所有者,即dbo用户,dbo用户是一个比较特殊的数据库用户,无法删除,
    -- 且此用户始终出现在每个数据库中 

    删除SQL登陆账户:

    --删除xingyun账户名
    exec sp_droplogin 'xingyun'

                                                                     

    给数据库用户授权:

    grant 权限 [on 表名] to 数据库用户

    /* --给数据库用户授权-- */
    -- 授权的语法如下
    -- grant 权限 [on 表名] to 数据库用户
    use student
    go
      grant select,update,insert on stuMarks to xingyun
      grant create table to xingyun
    go
  • 相关阅读:
    Java 面向对象(十二)类的成员 之 代码块
    Java 关键字:static
    Java 常用类(二):包装类(Wrapper)
    Java 之 clone 方法(对象拷贝)
    SQL分组聚合查询
    Rabbitmq消息持久化
    idea 插件
    TCP粘包,拆包及解决方法
    redis内存淘汰策略及如何配置
    MySQL存储过程/存储过程与自定义函数的区别
  • 原文地址:https://www.cnblogs.com/xingyunblog/p/3849288.html
Copyright © 2011-2022 走看看