精华内容
下载资源
问答
  • SQL命令修改数据库
    万次阅读
    2019-05-22 09:34:14

    向数据库中添加数据文件

    ADD FILE

    ALTER DATABASE First
    ADD FILE
    (
    	NAME = First_App,
    	FILENAME = 'D:\First_App.ndf',
    	SIZE = 10,
    	MAXSIZE = 500,
    	FILEGROWTH = 10)
    
    
    

    向数据库添加日志文件

    ADD LOG FILE

    ALTER DATABASE First
    ADD LOG FILE
    (
    	NAME = First_Bpp,
    	FILENAME = 'D:\First_Bpp.ldf',
    	SIZE = 5,
    	MAXSIZE = 500,
    	FILEGROWTH = 5)
    

    从数据库里删除逻辑文件,并删除物理文件(如文件不为空,则无法删除)

    REMOVE FILE

    ALTER DATA First
    REMOVE FILE First_App
    

    指定要修改的文件

    MODIFY FILE

    ALTER DATABASE First
    MODIFY FILE
    (
    	NAME = First_BPP,
    	FILEGROWTH = 10)
    

    向数据库添加文件组

    ADD FILEGROUP

    向数据库删除文件组,若文件组非空,无法将其删除,需要先从文件组中删除所有文件

    REMOVE FILEGROUP

    修改文件组名称,设置文件组的只读(READ_ONLY)或者读写(READ_WRITE)属性,指定文件组为默认文件组(DEFAULT)

    MODIFY FILEGROUP

    ALTER DATABASE和CERATE DATABASE

    ALTER DATABASE命令只有DBA数据库管理员或者具有CERATE DATABASE的权限的数据库的所有者才有权执行此命令

    更多相关内容
  • 数据库SQL命令大全

    千次阅读 2021-04-18 13:20:11
    一、关于数据库SQL命令 1.创建数据库 CREATE DATABASE 数据库名称 [ON [FILEGROUP 文件组名称] ( NAME=数据文件逻辑名称, FILENAME='路径+数据文件名', SIZE=数据文件初始大小, MAXSIZE=数据文件最大容量, ...

    一、关于数据库的SQL命令

    1.创建数据库

    CREATE DATABASE  数据库名称
    [ON
    [FILEGROUP  文件组名称]
    (
    NAME=数据文件逻辑名称,
    FILENAME='路径+数据文件名',
    SIZE=数据文件初始大小,
    MAXSIZE=数据文件最大容量,
    FILEGROWTH=数据文件自动增长容量,
    )]
    
    [LOG ON
    (
    NAME=日志文件逻辑名称,
    FILENAME='路径+日志文件名',
    SIZE=日志文件初始大小,
    MAXSIZE=日志文件最大容量,
    FILEGROWTH=日志文件自动增长容量,
    )]
    [COLLATE 数据库校验方式名称]
    [FOR ATTACH]
    

    注释:

    1.用[ ]括起来的语句,可以选用或者不选用.
    2.如果只用 “CREATE DATABASE 数据库名称”,DBMS会默认逻辑名称、文件组大小等属性.

    2.修改数据库

    ALTER DATABASE 数据库名称
    
    //1.向数据库中添加数据文件
    ADD FILE(
             具体文件格式)      
    [TO FILEGROUP 文件组名]
    
    //2.向数据库中添加数据文件
    |ADD LOG FILE(
                  具体文件格式)
                  
    //3.向数据库删除逻辑文件,并删除物理文件
    |REMOVE FILE 文件逻辑名称
    
    //4.指定要修改的文件
    |MODIFY FILE(
                 具体文件格式)
    //5.向数据库中添加文件组
    |ADD FILEGROUP 文件组名
    
    //6.从数据库中删除文件组
    |REMOVE FILEGROUP 文件组名
    
    //7.修改文件组名称,或设置文件组的只读、读写,指定文件组为默认文件组
    |MODIFY FILEGROUP  文件组名
    {
    READ_ONLY|READ_WRITE,
         | DEFAULT,
         | NAME = 新文件组名 }
         
    其中,“具体文件格式”为:
    (
        NAME = 文件逻辑名称
        [,NEWNAME = 新文件逻辑名称]
        [,SIZE = 初始文件大小]
        [,MAXSIZE = 文件最大容量]
        [,FILEGROWTH = 文件自动增长容量]
    )
    
    其中“|”表示单选
    

    3.删除数据库

    DROP DATABASE 数据库名称
    

    4.查询数据库

    4.1用系统存储过程显示数据库结构

    Sp_helpdb [[@dbname=] 'name']
    

    4.2用系统存储过程显示文件信息

    Sp_helpfile [[@filename =] 'name']
    

    4.3用系统存储显示文件组信息

    Sp_helpfilegroup [[@filegroupname =] 'name']
    

    二、数据类型介绍

    1.数值

    在这里插入图片描述

    2.字符串

    在这里插入图片描述

    3.时间日期

    在这里插入图片描述

    4.数据库的字段属性

    4.1

    UnSigned

    无符号的
    声明了该列不能为负数

    4.2

    ZEROFILL

    0填充的
    不足位数的用0来填充 , 如int(3),5则为005

    4.3

    Auto_InCrement

    通常理解为自增,自动在上一条记录的基础上默认+1
    通常用来设计唯一的主键,必须是整数类型
    可定义起始值和步长
    当前表设置步长(AUTO_INCREMENT=100) : 只影响当前表
    SET @@auto_increment_increment=5 ; 影响所有使用自增的表(全局)

    4.4

    NULL 和 NOT NULL

    默认为NULL , 即没有插入该列的数值
    如果设置为NOT NULL , 则该列必须有值

    4.5

    DEFAULT

    默认的,用于设置默认值

    4.6

    拓展
    在这里插入图片描述

    三、关于数据表的SQL命令

    1.创建数据表

    CREATE TABLE 表名
    (  列名 数据类型 表约束,
       .
       .
       .                       )
       
    例子: 
    CREATE TABLE S
    ( SNO VARCHAR(6),
      SN NVARCHAR(10),
      SEX NCHAR(1) DEFAULT '男', )
    
    

    2.数据表的约束

    2.1 NULL/NOT NULL约束

    NULL值不是0,也不是空白,指“不知道’、”不确定“的意思,
    NOT NULL指不允许出现空值。

    2.2 UNIQUE约束(唯一约束)

    用于指明基本表在某一列或多个列的组合上取值必须唯一

    建立UNIQUE约束时,需要考虑以下几个因素。

    1.使用 UNIQUE约束的字段允许为NULL值,但系统为保证其唯一性,最多只可以出现一个NULL值。
    2.一个表中可以允许有多个 UNIQUE约束
    3.UNIQUE约束用于强制在指定字段上创建一个 UNIQUE索引,缺省为非聚集索引,UNIQUE既可用于列约束,也可用于表约束。

    2.3 PRIMARY KEY 约束(主键约束)

    语法格式:
    CONSTRAINT S_Prim PRIMARY KEY (列约束)
    PRIMARY KEY (表约束)

    PRIMARY KEY 约束用于定义基本表的主键,起唯一标识作用,其值不能为空.

    PRIMARY KEY与 UNIQUE约束类似,通过建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别.

    1.在一个基本表中只能定义一个 PRIMARY KEY约束,但可定义多个 UNIQUE约束。
    2.对于指定为 PRIMARY KEY的一个列或多个列的组合,其中任何一个列都不能出现NULL值,而对于 UNIQUE所约束的唯一键,则允许为NULL。
    3.不能为同一个列或一组列,既定义 UNIQUE约束,又定义 PRIMARY KEY约束。

    2.4 FOREIGN KEY 约束(外键约束)

    语法格式:
    NOT NULL FOREIGN KEY REFERENCES 主表名(列名)
    例子:

    例子:
    CREATE TABLE SC
    ( SNO VARCHAR(6) NOT NULL FOREIGN KEY REFERENCES S(SNO),
       CNO VARCHAR(6) NOT NULL FOREIGN KEY REFERENCES C(CNO),
       CONSTRAINT S_C_Prim PRIMARY KEY (SNO,CNO)               )
       
       1.外部键必须是主表中的一个主键值或唯一值,因此才有最后一行SQL命令
       2.其次主键值不能为空,因此有NOT NULL
    

    外键约束作用:

    指定一列或几列作为外部键,包含外部键的表称为从表,
    包含外部键所引用的主键或唯一键称为主表,
    系统保证从表在外部键上的取值值是主表中某一个主键值或唯一键,或者取空值.

    2.5 CHECK约束

    CHECK约束用于检查字段值所允许的范围
    语法格式:
    CHECK (条件)

    例子:
    建立一个SC表,定义 Score的取值范围为0~100之间。
    CREATE TABLE SC
    (  SNO VARCHAR(6)
       CNO VARCHAR(6)
       Score NUMERIC(4, 1)  CHECK (Score>=0 AND Score<=100)   )
    

    建立CHECK约束,需要考虑以下几个因素

    1.一个表中可以定义多个 CHECK约束。
    2.每个字段只能定义一个 CHECK约束。
    3.在多个字段上定义的 CHECK约束必须为表约束。
    4.当执行 INSERT、 UPDATE语句时, CHECK约束将验证数据。

    3.修改数据表

    3.1 ADD方式

    ADD方式用于增加新列和完整性约束

     语法格式:
     ALTER TABLE 表名
     ADD
     列名  数据类型
     ....
     
    

    3.2 ALTER方式

    ALTER方式用于修改某些列

    ALTER TABLE 表名
    ALTER COLUMN
    列名 数据类型
    ....
    

    使用此方式有如下一些限制

    1.不能改变列名
    2.不能将含有空值的列的定义修改为 NOT NULL约束
    3.若列中已有数据,则不能减少该列的宽度,也不能改变其数据类型。
    4.只能修改 NULL/NOT NULL约束其他类型的约束在修改之前必须先将约束删除,然后再新添加修改过的约束定义。

    3.3 DROP方式

    DROP方式只用于删除完整性约束定义

    其语法格式为
    ALTER TABLE<表名>
    DROP CONSTRAINT<约束名>
    
    【例】删除S表中的主键。
    ALTER TABLE S
    DROP CONSTRAINT S Prim
    

    4.删除数据表

    语法格式:
    DROP TABLE 表名
    

    四、关于数据表查询的SQL命令

    1.单关系表的数据查询

    1.1 无条件查询

    语法格式:
    SELECT 列名
    FROM 表名
    
    //1. *表示表的全部列名
    SELECT *
    FORM S
    
    //2. DISTINCT关键字用于消除重复行
    SELECT DISTINCT SNO
    FROM SC
    
    //3. AS 表示别名,输出别名
    SELECT SN AS Name,SNO,AGE
    FROM S
    

    1.2 条件查询

    运算符含义
    =、>、<、>=、<= 、!=、<>比较大小
    AND、OR、NOT多重条件
    BETWEEN AND确定范围
    IN确定集合
    LIKE字符匹配
    IS NULL空值
    语法格式:
    SELECT 列名
    FROM 表名
    WHERE 条件
    

    1.比较大小

    > SELECT SNO,SCORE 
    > FROM SC WHERE CNO='C1'
    

    2.多重条件查询 优先级从高到低:NOT、AND、OR

    :查询工资在1000~1500元之间的教师的教师号、姓名及职称。
    SELECT TNO, TN, Prof
    FROM T
    WHERE Sal BETWEEN 1000 AND 1500
    等价于
    SELECT TNO, TN Prof
    FROM T
    WHERE Sal>=1000 AND Sal<=1500
    

    3.确定集合
    利用"IN"操作可以查询属性值属于指定集合的元组

    【例】查询选修C1或C2的学生的学号、课程号和成绩。
    SELECT SNO, CNo, Score
    FROM SC
    WHERE CNO IN('C1,C2)
    
    此语句也可以使用逻辑运算符“OR”实现。
    SELECT SNO, CNo, Sco
    FROM SC
    WHERE CNO='Cl' OR 'CNo' = C2
    利用“NOTN”可以查询指定集合外的元组。
    
    【例3-30】查询没有选修C1,也没有选修C2的学生的学号、课程号和成绩。
    SELECT SNO, CNo, Score FROM SC
    WHERE CNo NOT IN ('C1,'C2')
    等价于
    SELECT SNO, CNo, Score FROM-SC
    WHERE (CNO <>'C1)AND (CNo<>'C2')
    

    4.部分匹配查询

    语法格式:
    <属性名> LIKE <字符串常量>
    
    通配符实例
    %ab%,’ab‘后可接任意字符串
    _(下划线)‘a_b’,'a’与’b’之间可有一个字符
    [ ][0-9],0~9之间的字符
    [^ ][^0-9],不在0~9之间的字符
     【例3-31】查询所有姓张的教师的教师号和姓名。 查询结果如下 
    SELECT TNO, TN 
    FROM T
    WHERE TN  LIKE'张%'
    
    【例3-32】查询姓名中第二个汉字是“力”的教师号和姓名。 
     SELECT TNO,TN 
     FROM T WHERE TN LIKE’_力%'
    

    6.空值查询
    某个字段没有值称为具有空值(NUL)通常没有为一个列输入值时,该列的值就是空值。

    【例333】查询没有考试成绩的学生的学号和相应的课程号
    SELECT SNO,CNO
    FROM SC
    WHERE SCORE IS NULL
    

    1.3常用库函数及统计查询

    函数功能
    AVG按列计算平均值
    SUM按列计算值的总和
    MAX求一列中的最大值
    MIN求一列中的最小值
    COUNT按列值统计个数
    【例】求学号为S1的学生的总分和平均分。
    SELECT SUM(Score) As TotalScore, AVG(Score) As AvgScore
    FROM SC
    WHERE (SNO =S1)
    

    上述查询语句中AS后面的 TotalScore和 AvgScore是别名,
    别名会显示在查询结果中.
    让使用实例者能清楚地知道查询内容所表示的含义,
    结果中就不显示列名.

    注意:在使用库函数进行查询时,通常要给查询的每一项内容加别名,
    否则查询结果就不会显示列名.

    【例3-35】求选修C1号课程的最高分、最低分及之间相差的分数。
    SELECT MAX (Score) AS MaxScore,MIN (Score) AS MinScore,
    MAX(Score)- MIN(Score) AS Diff
    FROM SC
    WHERE (CNO ='C1')
    
    【例3-36】求计算机系学生的总数。
    SELECT COUNT( SNO) FROM S
    WHERE Dept='计算机'
    
    【例3-37】求学校中共有多少个系
    SELECT COUNT (DISTINCT Dept) As DeptNum
    FROM S
    
    //注加入关键字 DISTINCT后表示消去重复行,
    //可计算字段“Dept”不同值的数目。COUNT(*)来统计元组个数.
    

    1.4分组查询

    1.4.1 GROUP BY子句

    GROUP BY子句可以将查询结果按属性列或属性列组合在行的方向上进行分组,每组在属性列或属性列组合上具有相同的值。

    【例3-40】查询每个教师的教师号及其任课的门数。
    SELECT TNO, COUNT(*)AS C_Num
    FROM TC
    GROUP BY TNo
    
    GROUP BY子句按TNo的值分组,
    所有具有相同TNo的元组为一组,
    对每一组使用函数COUNT进行计算,
    统计出各位教师任课的门数。
    

    1.4.2 HAVING子句

    若在GROUP BY子句分组后还要按照一定的条件进行筛选,
    则需使用 HAVING子句。

    【例3-41】查询选修两门以上(含两门)课程的学生的学号和选课门数。
    表的连接方法
    SELECT SNO, COUNT(*) AS SC_Num
    FROM SC
    GROUP BY SNO
    HAVING  ( COUNT(*)>=2 )
    
    GROUP BY子句按SNo的值分组,
    所有具有相同SNo的元组为一组,
    对每一组使用函数 COUNT进行计算,
    统计出每个学生选课的门数。 
    HAVING子句去掉不满足 COUNT(*)>=2的组。
    

    注意:

    一、.当在一个SQL查询中同时使用 WHERE子句, GROUP BY子句和 HAVING子句时,其顺序是WHERE、 GROUP BY、HAVING。

    二、WHERE与 HAVING子句的根本区别在于作用对象不同。

    1.WHERE句作用于基本表或视图,从中选择满足条件的元组;
    2.HAVING子句而作用于组,选择满足条件的组,必须用在 GROUP BY子句之后,但GROUP BY子句可没有 HAVING子句

    1.5查询结果的排序

    1.5.1 结果排序 ORDER BY子句

    当需要对查询结果排序时,应该使用 ORDER BY子句, ORDER BY Y子句必须出现在其他子句之后。

    排序方式可以指定,DESC为降序,ASC为升序,缺省时为序案犬认人

    展开全文
  • 本教程给大家介绍修改SQL-SERVER数据库表结构的SQL命令附sql命令行修改数据库,涉及到sqlserver数据库命令的相关知识,对sqlserver数据库命令感兴趣的朋友可以参考下本
  •  已有数据库,能够直接用mysql命令  命令格式  mysql -uusername -ppassword 数据库名 < sql文件路径  演示样例:mysql -uroot -p12345678 test < /root/test.sql  2. 创建新数据导入  mysql -...
  • SQL数据库操作命令大全

    千次阅读 2019-12-03 18:25:32
    SQL数据库操作命令大全 官网地址:https://dev.mysql.com/downloads/mysql/ ls /var/lib/mysql 这里是数据库的目录 过滤初始密码: grep password /var/log/mysqld.log 修改密码: alter user ro...

                                            SQL数据库操作命令大全

    官网地址:https://dev.mysql.com/downloads/mysql/

    ls   /var/lib/mysql    这里是数据库的目录

    过滤初始密码:

    grep password /var/log/mysqld.log

    修改密码:

    alter user  root@”localhost” identified by "123qqq…A";
    修改密码策略
    Show variables like  “%password%”    模糊查看包含password 的行
    
    set global validate_password_policy=0;                  //只验证长度
    set global validate_password_length=6;               //修改密码长度,默认值是8个字符
    alter user root@”localhost”  identified by "tarena";  //修改登陆密码
    
    这些在命令行里修改的是临时更改
    
    
                    vim /etc/my.cnf    //永久配置
    [mysqld]  下面
    validate_password_policy=0    变量名+名称
    validate_password_length=6    密码长度

     

    一:基础

    先下载安装数据库:

    yum -y install mariadb mariadb-server

     mysql  进入数据库

    1.创建数据库:

    CREATE DATABASE database-name;

     2.删除数据库

    drop database dbname;

    3.查看数据库

    show databases;

    4.终止命令,不执行

    Show databases  \c

    5.获取当前所在的库:

    Select database();

     6.显示连接用户名:

    show  user();

    7.切换库:

    show  user();

    8.建表命令:

    Create table 库名.表名(    

    字段名1  类型(宽度),

    字段名2  类型(宽度),

    ....

    )DEFAULT CHARSET=utf8;    //指定中文字符集,可以给字段赋予中文

    create table db1.stuinfo(name char(15), homeaddr char(20));

    在db1这个库里创建一个叫stuinfo 的表,表里面有name和homeaddr 2个字段

    9.查看表里面的结构和类型:

    desc stuinfo; 

    10.查看表内所有内容:

    select * from db1.stuinfo;

    11.往stuinfo表里面的2个字段添加内容,添加了2行

    insert into db1.stuinfo values("bob","usa"),("lilei","china");

    12.批量修改表记录,把stuinfo表里的 homeaddr字段的内容都修改成beijing

    update db1.stuinfo set homeaddr="beijing"; 

    13.删除stuinfo表里的所有表记录

    delete from db1.stuinfo; 

    14.删除db1库里的stuinfo表

    drop table db1.stuinfo;

    15.查看默认的字符集

    show create table mysql.user; 

    16.创建中文表,向其中添加内容:

    create table 学生表2(姓名 char(10), 年龄 int)DEFAULT CHARSET=utf8;
    insert into 学生表2 values("张三丰",150),("张翠山",99);

    进阶用法

    “  ” :不是空,代表为0个字符

    表结构:

    约束条件:        作用是限制如何给字段赋值

    null :              是yes 代表可以给表格赋空值(默认设置)

    not null          不允许为null(空)

    key                 键值类型

    default            设置默认值,缺省为null

    extra              额外设置

    1.只对name字段赋值,其余字段默认值

    insert into t1(name) values("jj");  

    2.  判断name是否为null空

    
    mysql> select name from db2.dc where name is null; 
    
    

    3.把ygb的yg_id=2的编号改成yg_id=8

    update ygb set yg_id=8 where yg_id=2;
    

    4.把ygb中的yg_id=8的编号信息删除

    delete from ygb where yg_id=8;

                                                         修改表结构

    命令 : alter table 库名.表名  执行动作;

    Add   添加新字段   :

    add 字段名 类型  约束条件;     字段默认在末尾

    add 字段名 类型  约束条件 after  字段名;    指定在什么字段后面

    add 字段名 类型  约束条件 first;   添加到所有前面

     1.添加一个新字段叫 email

    alter table db2.t1 add email varchar(50); 

    2.在age后面添加一个字段为likes 并设置default默认值

    alter table t1 add likes set("eat","drink","game","happy") not null default "eat,drink" after age;

    3.在所有字段前面添加一个字段为 class  设置默认值为”nsd1905”

    alter table db2.t1 add class char(7)  default "nsd1905" first;

    Modify  修改字段类型    :

    修改的字段不能与已存储的数据冲突

    格式  :    alter table  库命.表名  modify 字段名  类型(宽度)  约束条件 [after 字段名 | first ];

    1. 把字段age 修改到class字段后面,字段内容不变,就把原内容抄一遍

    alter table db2.t1 modify age tinyint unsigned default 19 after class;

    2.把modify 字段内容修改成 varchar(15)   其余不变照抄  

    alter table db2.t1 modify name varchar(15) not null default "";

    Change  修改字段名   :

    alter table 库名.表名 change 源字段名  新字段名  类型(宽度)  约束条件;

     1.把字段email  改成叫mail  字段内容不变照抄

    alter table db2.t1 change email  mail varchar(50);

    drop   删除字段  :

    alter table 库名.表名  drop 字段名;

    1. 把修改后的mail字段删除掉

    alter table db2.t1 drop mail; 

    rename  修改表名 :

    alter table  库名.表名  rename  库名.新表名;

    1. 把db2库里的t1表 改名为 dc

    alter table db2.t1 rename db2.dc;

    mysql简直概述:

    Mysql 键值

    普通索引  index

    唯一索引  unique

    主键   primary  key

    外键   foreign   key

    全文索引  fulltext

    -索引类似余书的目录

    -对表中的字段值进行排序

    -索引类型包括 : Btree  B+tree  hash

    优点 : 可以加快数据的查询速度

    缺点 :需要占用物理空间,降低了数据的维护速度 

    index   普通索引:

    -一个表中可以有多个index 字段

    index 字段 标志是MUL

    1. 建表时创建索引

    create table db2.t2(
        -> name char(10),
        -> age int,
        -> class char(7),
        -> email char(30),
        -> index(name),index(age)
        -> );
    创建t2 表时添加index索引,用name  和 age 2个表字段 做索引目标

    2.已有表里添加索引 :

    create  index  索引名  on  表名(字段名);

    create index xxx on db2.dc(name); 把dc表里的name字段加到索引里名为xxx

    2.1drop index 索引名 on 表名;   删除索引

    drop index age on db2.t2;  删除db2库中t2表里叫 age 的索引

    2.3show  index from 表名 \G;    详细查看索引字段

    show index from db2.t2\G;   查看索引字段

    primary  key主键

     

    -字段值不允许重复,且不允许赋NULL空值

    -一个表中只能有一个primary  key字段

    -主键字段的标志是PRI

    建表时创建主键:

    -  primary  key(字段名)

     1.创建t3表时,设置name字段为主键

    create table db2.t3(name char(10) primary key, age int);

    2.创建t4表时,写好字段参数后,在指定name为主键,和上面操作一样.

    create table db2.t4(name char(10), age int, primary key(name));

    3.已有表里创建主键 :

    格式 :alter table 库.表  add primary  key(字段名)

    3.1 在已有的dc表里把name字段设置成主键

    alter table db2.dc add primary key(name); 

    4.删除主键

    alter table 表名 drop   primary  key;

    复合主键 :

    表中多列一起做主键

    插入记录时多列的值不允许同时重复

    格式 : alter table  表名 add primary  key(字段名列表);

     1.建表时创建复合主键:

    create table db2.t5(class char(7), 
    	->name char(10),
    	->money  enum("no","yes"), 
    	->primary key(class, name)
    	->);
    创建t5表时,指定class 和name 2个表字段为主键,即是复合主键

    2.在已有表里添加主键 :

    alter table  表名 add primary  key(字段名列表);

    3.在t5表里添加一个字段

    alter table db2.t5 add stu_num char(9) first; 

    4.把t5表里的stu_num  class  name  3个字段设置成主键

    alter table t5 add  primary key(stu_num, class, name); 

    与auto_increment  连用

     auto_increment  :自增长

     1.创建t6表,创建时设置stu_num字段为主键并且是auto_increment 自增长.

    create table db2.t6(stu_num int primary key auto_increment, name char(10), age int);

     2.给这个表添加内容但不给stu_num赋值,因为stu_num是设置的自增长,所已不赋值也会自动+1

    insert into db2.t6 (name,age) values("bob",19);

     3.向t6表中添加内容

    insert into db2.t6(null,"dc",22); 

     foreign key 外键

     

    作用: 向表中插入记录时,字段值在另外一个表字段值范围内选择.

    使用规则:

    - 表存储引擎必须是innodb

    -字段类型要一致

    -被参照字段必须要是索引类型的一种(primary key),不能重复,不能为空值

    Create table 库.表(       格式:
    	字段列表,
    	Foreign key(字段名) references 库.表(字段名) 指定外键
    	On update cascade  同步更新
    	On delete cascade   同步删除
    	)engine=innodb;     指定存储引擎

    1.创建ygb 表,为yg_id设置成主键和自增长,并向其2个字段添加内容,指定存储引擎.

    create table db2.ygb(yg_id int primary key auto_increment, name char(20), sex enum("boy","girl"))engine=innodb;
    
    insert into db2.ygb(name,sex) values("bob","boy");
    insert into db2.ygb(name,sex) values("lisi","girl");

    2.创建一个表叫gzb ,表字段要和ygb表里的表字段一样,后设置参考ygb表的gz_id 做本地表gz_id 的外键,并报持同步更新和同步删除,在指定存储引擎

    create table gzb(gz_id int, pay float(7,2), foreign key(gz_id) references ygb(yg_id) on update cascade on delete cascade)engine=innodb;

    2.1把ygb的yg_id=2的编号改成yg_id=8

    update ygb set yg_id=8 where yg_id=2;  

    因为之前有设置过同步更新,所以更改ygb表中的yg_id 会同步到gzb表中的yg_id中

    2.2把ygb中的yg_id=8的编号信息删除

    delete from ygb where yg_id=8; 

    2.3去里面查询外键名称

    Show create table 表名;
    alter  table 表名  drop  foreign  key  外键名;

     

    展开全文
  • 如果name字段已经创建了索引,如果需要修改的话,必须先删除索引才能正确的进行。 您可能感兴趣的文章:sql server建库、建表、建约束技巧mysql建库时提示Specified key was too long max key length is 1000 bytes...
  • SQL数据库常用命令

    千次阅读 2018-12-04 23:56:09
    创建数据库 create database student;//创建一个名为student的数据库 创建数据库的表 create table student //定义一个名为student的表 ( sno char(9) primary key, sname char(20), ssex char(2) ...

    创建数据库

    create database student;//创建一个名为student的数据库
    

    创建数据库的表

    create table student		//定义一个名为student的表
    (
    sno char(9)  primary key,				
    sname char(20),
    ssex char(2)  constraint s_check check(ssex in('男','女'))
    );
    

    修改基本表

    alter table <表名>
    add [column] <新列名><数据类型> [完整性约束]
    add <表级完整性约束>
    drop [column] <列名> [cascade|restrict]
    drop constraint<完整性约束名> [cascade|restrict]
    alter column <列名><数据类型>;
    
    eg:向student表中增加'入学时间'列。
    alter table student add student_time datetime;
    
    eg:student表增加表级完整性约束。
    alter table student add primary key(sno);
    
    eg:student表删除'入学时间'列;
    alter table student drop column student_time;//注意在删除时需要带上column,增加时随意。
    
    eg:student表删除用户定义的完整性约束
    alter table student drop constraint s_check;
    
    eg:修改列的定义
    alter table student alter column;
    

    删除基本表

    drop table student ;
    

    索引的建立、修改、删除

    create unique index <索引名> on <表名>(<列名> asc,<列名> desc,...)
    alter index <索引名> rename to <新的索引名>
    drop index <索引名>
    

    数据查询

    select [all|distinct] <目标列表达式> 
    from <表名或视图名> 
    [where <条件表达式>]
    [group by <列名> [having <表达式>]  ]
    [order by <列名> [asc|desc]  ]
    
    
    常用的查询条件
    确定范围: between and ;not between and
    确定集合: in ;not in
    字符匹配:like ; not like("_"表示单个任意字符;"%"表示任意长度的字符串)
    空值:is null;is not null
    逻辑运算: and ; or ;not 
    
    聚集函数
    count(*)			统计元组个数
    count([distinct|all] <列名>) 		统计一列中值的个数
    sum() 、avg()、max()、min()
    注意:聚集函数只能用于select子句和group by 中的having 子句
    

    数据更新

    insert into student(sno,sname)values('1','小王');
    insert into student(sno,sname) 子查询;
    
    update <表名> set <列名>=<表达式> [where <条件>];
    
    delete from <表名> [where <条件>];
    

    视图

    create view <视图名> (<列名>,<列名>,<列名>)
    as 子查询
    [with check option]
    
    插、删、改 类似表
    
    展开全文
  • SQL Server中,使用Create Database创建数据库,使用Alter Database命令,能够修改数据库的数据文件和日志文件。  一,创建数据库  1,在创建数据库时,佳实践是:  创建一个或多个文件组,并设置默认文件组...
  • 如果在执行DBCC CHECKDB(‘db_name', REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQL Server服务,然后继续尝试。 5、若成功修复了数据库中的错误: 重新执行DBCC CHECKDB(‘db...
  • 修改表结构使用alter table,常用的操作有删除列、添加列、更改列、改表名等。其中,删除列的语法格式如下。alter table table_name DROP column_name命令如下。mysql>alter table tb_test DROP name;Query OK, 2...
  • 数据库MySQL——SQL语句(命令

    千次阅读 2021-01-20 00:01:49
    SQL语句分类DCL (Data Control Language):数据控制语言;用来管理用户及权限DDL(Data Definition Language):数据定义语言;用来定义数据库对象:库,表,列等DML(Data Manipulation Language):数据操作语言;用来...
  • 打开CMD命令 执行:sqlcmd/? 这是sqlcmd命令的一些帮助信息 通过上面可以知道怎么连数据库了 执行:sqlcmd -S 服务器地址 -d 数据库名称 -U 用户密码 -P 密码 以下是操作数据库的一下命令 代码如下: 0. 创建数据库 ...
  • 微软的 Access 中包含 Data Definition Language (DDL) 来建立删除表以及关系,当然了,这也可以用 DAO 来解决。
  • SQLSever修改数据库

    千次阅读 多人点赞 2020-02-13 21:25:37
    数据库创建完成以后,用户在使用过程中可以根据需要对其原始...(1)更改数据库文件 (2)添加和删除文件组 (3)更改选项 (4)更改跟踪 (5)更改权限 (6)更改扩展属性 (7)更改镜像 (8)更改事务日志传送 ...
  • SQL server 数据库的创建和删除(命令操作) 一、数据库的创键 如果大家喜欢可以点个赞关注一下小编哦,谢谢 // 创键数据库 create database db_name ON ( NAME=db_name_data, //数据库命名 FILENAME='E:\db_name_...
  • linux中的数据库命令

    2021-05-10 22:23:04
    linux中的数据库命令包括链接,重启,关闭等等。下面由学习啦小编为大家整理了linux下的数据库命令的相关知识,希望对大家有帮助!一.linux下启动mysql数据库命令1. mysqladmin start2. /ect/init.d/MySQL start ...
  • mysql数据库默认的编码是:Latin1,要想支持中文需要修改为gbk/utf8的编码格式。 1、以root管理员身份查看数据编码格式。 登陆命令:>mysql -u root –p 输入密码后如下命令查看数据编码格式: show variables ...
  • sql语句如何修改数据库数据

    千次阅读 2021-11-22 18:14:22
    利用模糊查询条件 where 后面多个条件 or 和 and
  • SQL Server 修改数据库名称

    千次阅读 2020-08-07 16:38:55
    一、 准备工作 改名时如果有其他用户会话...如果有,执行KILL命令杀掉 KILL SPID 也可以将数据库设置为单用户模式。在数据库属性 -> “连接”页面 找到“限制访问”选项,选择SIGLE_USER。 命令行 us...
  • SQL命令执行数据库备份

    千次阅读 2019-07-26 13:43:43
    backup database XXXXX to disk='D:\Bak\BACKUP.bak' with init XXXXX是数据库名字 转载于:https://www.cnblogs.com/lx0831/archive/2009/04/07/1431115.html
  • SQL server-数据库修改与删除
  • Sql 命令不常用,每次用到都忘记,很多命令没有使用到就只记录几个常用命令。下次使用时,查询起来方便些。 1、增 命令:insert into 表名() values() 例:insert into dbshike(SN,WMAC,CodeBurningResult) ...
  • 说明:T-SQL指令大小写不敏感,大小写无所谓,建议大写 数据库创建
  • 本篇博客主要介绍如何对MySQL数据库通过cmd命令导出和导入sql文件。 1.导出sql文件 导出sql文件可以使用mysqldump。主要有如下几种操作:①导出整个数据库(包括数据库中的数据):mysqldump -u username -p...
  • sql语句中修改表结构的命令是什么

    千次阅读 2021-05-02 09:32:50
    SQL 语句中修改表结构的命令是ALTER TABLE。ALTER TABLE 语句ALTER TABLE 语句用于在已有的表中添加、删除或修改列。SQL ALTER TABLE 语法如需在表中添加列,请使用下面的语法:ALTER TABLE table_nameADD column_...
  • 达梦数据库常用sql

    千次阅读 2022-03-28 17:11:38
    (2)、统计结果,保存导测试表test中(注意修改sql中的模式名称PRODUCT1) declare count_rows int; v_sql varchar(100); begin count_rows:=0; for a in (select TABLE_NAME from dba_tables wh
  • 主要介绍了SQL Server 数据库调整表中列的顺序操作,文中给大家通过详细步骤介绍了需求及问题描述 ,需要的朋友可以参考下
  • MYSQL数据库常用命令

    千次阅读 2021-02-05 08:57:44
    MYSQL数据库常用命令1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES;2:2、创建一个数据库MYSQLDATAmysql> CREATE DATABASE MYSQLDATA;3:选择你所创建的数据库mysql> USE MYSQL...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 446,339
精华内容 178,535
关键字:

修改数据库的sql命令是