DDL之库和表的管理,Mysql数据库中对表操作sql语句

DDL(Data Definition languages)数据定义语言,那些语句首要定义了差别的数据段,数据表、列、索引等操作,首要关键字有create、drop、alter。
一、 数据库的操作
1.数据库的创始
CREATE DATABASE IF NOT EXISTS chens;
2.数据库的修改
CREATE DATABASES BOOKS TO 新库名;
留心:平时不更换库的名字,因为这么修改的话可能会使库中的数据变化。
3.改造数据库的字符集
ALTER DATABASE chens character set gbk;
4.删除库
DROP DATABASE IF EXISTS chens;

DDL(Data Define Languge):数据定义语言

ALTE智跑 TABLE:增多,修改,删除表的列,约束等表的概念。

Mysql数据库中对表操作sql语句总计

   --创制数据库

  create database school

  --展开数据库

  use school

  --创建表

  create table student

  (

  id int,

  name varchar(20),

  sex char(2),

  age int,

  date datetime,

  info text,

  bak varchar(500)

  )

  --查看表结构

  exec sp_help student

  --修改、添加列(字段)

  alter table student

  add tel varchar(20)

  --删除列(字段)

  alter table student

  drop column bak

  --属性修改

  --修改列名(字段名)

  exec sp_rename 'student.sex','sex2'

  --修改类型

  alter table student

  alter column age char(20)

  --删除表

  drop table student

  -------------------------------表(结构):--------------------------------------------

  ----创立表,查看表结构,修改(扩展列、删除列、属性(如姓名、年龄),删除表)

  ---数据的完整性:主键约束、独一约束、检查性约束、暗中认可约束、外键约束

  create table biao

  (

  id int primary key,

  name varchar(20),

  sex char(2) check(sex='男' or sex='女'),

  age int,

  date datetime,

  info text,

  tel char(16) unique,

  bak varchar(500) default '小编是学员'

  )

  create table grade

  (

  id int not null,

  name varchar(20),

  sex char(2),

  age int,

  date datetime,

  info text,

  bak varchar(500)

  )

  alter table grade

  add tel char(16)

  ---扩展主键

  alter table grade

  add constraint aa primary key(id)

  ---增添独一性约束

  alter table grade

  add constraint bb unique(tel)

  ---查看约束

  exec sp_helpconstraint grade

  ---加多检查性约束

  alter table grade

  add constraint sex check(sex='男' or sex='女')

  ---增加暗许约束

  alter table grade

  add constraint ccc default '小编是好学生' for bak

  ---删除约束

  alter table grade

  drop constraint ccc

  -----------------------------增加约束的格式------------------------------------------

  ---alter table 表名

  ---add constraint 约束名(别名(任意取)) 约束关键字

  ----作业题,7.28-----

  create table shop_jb

  (

  id int primary key,

  namel varchar(20),

  spec varchar(20),

  stock int,

  price float,

  datel datetime default '2010-7-6'

  )

  create table shop_yw

  (

  ywid int primary key,

  name2 varchar(20),

  sex char(2) check(sex='男' or sex='女'),

  age int,

  tel varchar(18) unique,

  address varchar(20)

  )

  create table shop_xs

  (

  id int not null,

  sale char(20),

  quantity char(20),

  date2 datetime default '2010-5-3',

  ywid int

  foreign key(id) references shop_jb,

  foreign key(ywid) references shop_yw

  )

  例如:

  修改表expert_info中的字段birth,允许其为空

  >alter table expert_info change birth birth varchar(20) null;

  1.充实贰个字段(一列)

  alter table table_name add column column_name type default value; type指该字段的门类,value指该字段的私下认可值

  例如:alter table mybook add column publish_house varchar(10) default '';

  2.更换三个字段名字(也得以改换类型和暗中同意值)

  alter table table_name change sorce_col_name dest_col_name type default value; source_col_name指原来的字段名称,dest_col_name

  指改后的字段名称

  例如:alter table Board_Info change IsMobile IsTelphone int(3) unsigned default 1;

  3.改观叁个字段的暗中认可值

  alter table table_name alter column_name set default value;

  例如:alter table book alter flag set default '0';

  4.改变叁个字段的数据类型

  alter table table_name change column column_name column_name type;

  例如:alter table userinfo change column username username varchar(20);

  5.向一个表中扩充一个列做为主键

  alter table table_name add column column_name type auto_increment PRIMARY KEY;

  例如:alter table book add column id int(10) auto_increment PRIMARY KEY;

  6.数据库某表的备份,在命令行中输入:

  mysqldump -u root -p database_name table_name > bak_file_name

  例如:mysqldump -u root -p f_info user_info > user_info.dat

  7.导出多少

  select_statment into outfile"dest_file";

  例如:select cooperatecode,createtime from publish limit 10 into outfile"/home/mzc/temp/tempbad.txt";

  8.导入数据

  load data infile"file_name" into table table_name;

  例如:load data infile"/home/mzc/temp/tempbad.txt" into table pad;

  9.将五个表里的数量拼接后插入到另二个表里。下边包车型大巴事例表明将t1表中的com2和t2表中的com1字段的值拼接后插入到tx表对应的

  字段里。

  例如:insert into tx select t1.com1,concat(t1.com2,t2.com1) from t1,t2;

  10,删除字段

  alter table form1 drop column 列名;

  补充贰个:

  PHP操作MySQL对表增添一列

  于已经确立好的数据库,在一个早就有字段的表内新加字段可用以下格局:

  mysql_query(“ALTER TABLE `表名` ADD `字段` 字段类型”) or die(mysql_error());

  举例,对表article增添字段keywords

  代码:

 代码如下

 

<?php
$link = mysql_connect($servername,$dbusername,$dbpassword);
if (mysql_select_db($dbname)) {
if ($link) {
echo “connect succeed”;
mysql_query(“ALTER TABLE `article` ADD `keywords` varchar(100) NOT NULL default ””) or die(mysql_error());
echo “Add succeed”;
} else {
echo “connect failed”;
}
mysql_close($link);
}
?>

--创立数据库 create database school --张开数据库 use school --创制表 create table student ( id int, name varchar(20), sex...

二、 表的田间管理
1.表的创始
Create table 表名(
列名 类型[长度] 约束1 约束2 ……,
列名 类型[长度] 约束1 约束2 ……,

列名 类型[长度] 约束1 约束2 ……,
[表级约束]
) [engine=Innodb default charset=utf-8 存款和储蓄引擎 和 字符集];
创建表 book
Create table book(
id int,
bName varchar(20),
price double,
authorId INT,
rDate datetime
);
图片 1
图片 2
2.表的改变
语法:
Alter table 表名 add | drop | modify | change column 列名 [列类型 约束];
①改换列名
Alter table book change column rDate rQi datetime;
图片 3
②修改列的项目和束缚
Alter table book modify column rQi TIMESTAMP;
图片 4
③改动增多新列
Alter table book add column chen varchar(20);
瞩目:增加新列到内定地方
first 和 after,first 表示加多列到表的首先列,after 代表增加在有个别列其后。
语法:alter table book add column 字段名 类型 约束 [first | after 列名]
暗中认可增加到最终一列。
图片 5
④删除列
Alter table book drop column chen;
图片 6
⑤更换表名
Alter table book rename to book_chen;
图片 7
图片 8
3.表的去除
Drop table if exists book_chen;
Show tables;
图片 9
4.表的复制
表1是已存在的表,表2不设有的表
①只复制表的协会
Create table 表2 like 表1;
图片 10
②复制数据 内容
Create table 表2 like select * from 表1;
③复制部分数据
Create table 表2 like select * from 表1 where 条件;
④仅仅复制有些字段
Create table 表2 like select 字段1 ,字段2 from 表1 where 0;

语法:create database [if not exists]库名;

  • 查看列:desc 表名;
  • 修改表名:alter table t_book rename to bbb;
  • 添加列:alter table 表名 add column 列名 varchar(30);
  • 增多带注释的列:alter table directory add index_url varchar(256) default null comment '章节书目链接' after dir_url;
  • 删除列:alter table 表名 drop column 列名;
  • 修改列名MySQL: alter table bbb change nnnnn hh int;
  • 修改列名SQLServer:exec sp_rename't_student.name','nn','column';
  • 修改列名Oracle:lter table bbb rename column nnnnn to hh int;
  • 修改列属性:alter table t_book modify name varchar(22);

案例:创建库books

sp_rename:SQLServer 内置的存储进程,用与修改表的概念。

CREATE DATABASE IF NOT EXISTS books ;

 

更动库的字符集

 

ALTER DATABASE books CHARACTER SET gbk;

MySQL 查看约束,加多约束,删除约束 加多列,修改列,删除列

DROP DATABASE IF EXISTS books;

 

语法:create table 表名(列名 列的类型,列名 列的类型,...列名 列的门类;

  • 查看表的字段消息:desc 表名;
  • 查看表的全部音信:show create table 表名;
  • 丰盛主键约束:alter table 表名 add constraint 主键 (形如:PK_表名) primary key 表名(主键字段);
  • 丰硕外键约束:alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key 从表(外键字段) references 主表(主键字段);
  • 去除主键约束:alter table 表名 drop primary key;
  • 删除此之外键约束:alter table 表名 drop foreign key 外键(区分轻重缓急写);

  • 修改表名:alter table t_book rename to bbb;

  • 添加列:alter table 表名 add column 列名 varchar(30);
  • 删除列:alter table 表名 drop column 列名;
  • 修改列名MySQL: alter table bbb change nnnnn hh int;
  • 修改列名SQLServer:exec sp_rename't_student.name','nn','column';
  • 修改列名Oracle:alter table bbb rename column nnnnn to hh int;
  • 修改列属性:alter table t_book modify name varchar(22);
  •  MySQL修改字段暗许值

      解决

      alter table topic alter column cateId set default '2';

      语法

      alter table表名alter column字段名drop default; (若本人存在暗许值,则先删除)

      alter table 表名 alter column 字段名 set default 私下认可值;(若自身海市蜃楼则能够一向设定)

  • 累计带暗中同意值,带字段描述的列:ALTE汉兰达 TABLE jz_order ADD COLUMN delay_delivery tinyint(3) DEFAULT 0 COMMENT '是还是不是延迟收货,0:表示尚无延期,1:第一遍推迟 2:第一遍推迟' AFTEXC60c_userid;

图片 11

 

DESC book;

 

图片 12图片 13

 

语法:alter table 表名 add|drop|modify|change column 列名 ;

sp_rename:SQLServer 内置的囤积进度,用与修改表的定义。

①修改列名

 

ALTER TABLE book CHANGE COLUMN publishdate pubDate DATETIME;

INSERT IGNORE 与INSERT INTO的区分正是INSERT IGNORE会忽略数据库中一度存在 的多少,固然数据库未有数量,就插入新的多寡,假如有多少的话就跳过那条数据。那样就足以保存数据库中早就存在数量,达到在空闲中插入数据的指标。
eg:
insert ignore into table(name)  select  name from table2

②修改列的花色或约束

 

ALTER TABLE book MODIFY COLUMN pubdate TIMESTAMP;

 

③增加新列

MySQL 相关数据库、表、表结构等展现命令

1、突显数据库列表。
show databases;
2、展现库中的数据表:
use mysql;
show tables;
3、突显数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;

ALTER TABLE author ADD COLUMN annual DOUBLE;

④删除列

ALTER TABLE author DROP COLUMN annual;

⑤修改表名

ALTER TABLE author RENAME TO book_author;

DROP TABLE IF EXISTS book_author;

翻开当前数据库的表:SHOW TABLES;

鉴于2.3一度把author表删了,所以先依照2.1创办回该表,然后插入一些数量;

图片 14

偏偏复制表的构造

CREATE TABLE copy LIKE author;

复制表的协会 数据

CREATE TABLE copy2 SELECT * FROM author;

只复制部分数据

CREATE TABLE copy3 SELECT id,au_name FROM author WHERE nation='中国';

无非复制有个别字段

CREATE TABLE copy4 SELECT id,au_name FROM author WHERE 0;

DROP DATABASE IF EXISTS 旧库名;

CREATE DATABASE 新库名;

DROP TABLE IF EXISTS 旧表名;

CREATE TABLE 表名();

关注大伙儿号:Java后端生活,干货小说第有时间送达!

图片 15

本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:DDL之库和表的管理,Mysql数据库中对表操作sql语句

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。