06.临时表、修改表结构 2
- 格式:ppt
- 大小:99.00 KB
- 文档页数:3
mysql修改表结构命令大全Mysql数据库表结构修改命令大全一、原表的结构如下:CREATE TABLE person(number int(11) DEFAULT NULL,name varchar(255) DEFAULT NULL,birthday date DEFAULT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8;二、表结构修改及代码2.1 删除列birthdayALTER TABLE person DROP COLUMN birthday;2.2 添加列birthdayALTER TABLE person ADD COLUMN birthday datetime;2.3 修改列number类型为bigintALTER TABLE person MODIFY number BIGINT NOT NULL;2.4 修改列number为id,类型为bigintALTER TABLE person CHANGE number id BIGINT;2.5 添加主键ALTER TABLE person ADD PRIMARY KEY (id);2.6 删除主键ALTER TABLE person DROP PRIMARY KEY;2.7 添加唯一索引为name这一列创建了唯一索引,索引的名字是name_unique_index.ALTER TABLE person ADD UNIQUE name_unique_index (`name`);2.8 添加普通索引ALTER TABLE person ADD INDEX birthday_index (`birthday`);2.9 删除索引ALTER TABLE person DROP INDEX birthday_index;ALTER TABLE person DROP INDEX name_unique_index;2.10 禁用非唯一索引ALTER TABLE...DISABLE KEYS让MySQL停止更新MyISAM表中的非唯一索引。
ALTERTABLE(修改表结构命令)ALTER TABLE(修改表结构命令):ALTER TABLE(修改表结构命令):对表结构的操作,我们主要分两部分讨论,即针对字段和针对索引的操作。
表结构修改之对字段操作1.给表怎加增加字段其命令格式是:alter table 表名 add 字段名类型 [(宽度[,小数位数])]例:给教师表增加奖金字段(整型字段)在命令窗口中执行下列命令:alter table 教师 add 奖金 I2.删除表字段其命令格式是:alter table 表名 drop 字段名例:删除教师表中的性别字段在命令窗口中执行下列命令:alter table 教师 drop 性别3.字段名更名其命令格式是:alter table 表名 rename 原字段名 to 新字段名例:将教师表中的"姓名"字段名更名为"教师姓名"在命令窗口中执行下列命令:alter table 教师 rename 姓名 to 教师姓名4.增加字段并设置有效性规则、信息和默认值其命令格式是:alter table 表名 add 字段名数据类型 [(宽度[,小数位数]) [check 规则 [error 信息]][default 默认值]例:给教师表增加性别字段,并设置性别字段的有效性规则为“性别必须是男或女”出错信息为“性别输入有误”默认值为“男”在命令窗口中执行下列命令:alter table 教师 add 性别 C(2) CHECK 性别="男" or 性别="女" ;error "性别输入有误" default "男"5.修改字段的类型宽度等其命令格式是:alter table 表名 alter 字段名新类型 [(新宽度[,小数位数])] 例:将教师表中婚否字段类型改为字符型宽度为2在命令窗口中执行下列命令:alter table 教师 alter 婚否 C(2)。
数据库更新表结构语句1. 嘿,你要是想给数据库里的表结构来个大变身,那ALTER TABLE语句可就是你的魔法棒啊!就好比你要改造一间房子,这个语句能让你随心改变表的结构。
比如说我有个学生信息表,之前没有记录家庭住址的字段,我就可以用ALTER TABLEstudent ADD COLUMN address VARCHAR(255);这样就轻松加上了地址字段啦。
2. 哟呵!想修改数据库表结构里字段的数据类型吗?那可太酷啦。
就像给人换一身新衣服似的。
MODIFY这个关键字就能帮上大忙。
打个比方,我的产品价格表中,价格字段原来设成了INT型,后来发现不够精确,想改成DECIMAL型,那就可以用ALTER TABLE product MODIFY price DECIMAL(10, 2);这多方便呀。
3. 哇塞,你知道吗?如果想在数据库表结构里删除某个字段,就像从装满东西的盒子里拿掉一样东西那么简单,只要用DROP COLUMN。
举个例子,我有个员工表,里面有个多余的临时部门字段,我就可以执行ALTER TABLE employee DROP COLUMN temp_department;一下子就清爽了呢。
4. 哎数据库表结构要加个约束条件?那简直就像给调皮的孩子立规矩一样重要呢。
用ALTER TABLE语句加上约束超容易。
例如我的订单表,我想确保订单金额不能是负数,就可以ALTER TABLE order ADD CONSTRAINT check_amount CHECK (amount >= 0);是不是很厉害?5. 嗨想重命名数据库表中的列名吗?这就像是给宠物改个名字一样有趣。
RENAME COLUMN这个操作就能搞定。
像我有个用户表,其中的user_name列我想改成full_name,就可以用ALTER TABLE user RENAME COLUMN user_name TO full_name;6. 天呐,要是想在数据库表结构里增加一个主键,就如同给一群乱跑的小羊找个领头羊一样关键。
MYSQL的常用命令,对表的修改与表结构修改.MYSQL的常用命令,对表的修改与表结构修改.有时我们要对数据库表和数据库进行修改和删除,可以用如下方法实现:1、增加一列:如在前面例子中的mytable表中增加一列表示是否单身single: mysql> alter table mytable add column single char(1);2、修改记录将abccs的single记录修改为“y”:mysql> update mytable set single='y' where name='abccs';现在来看看发生了什么:mysql> select * from mytable;+----------+------+------------+-----------+--------+| name | sex | birth | birthaddr | single |+----------+------+------------+-----------+--------+| abccs|f | 1977-07-07 | china | y || mary |f | 1978-12-12 | usa | NULL || tom |m | 1970-09-02 | usa | NULL |+----------+------+------------+-----------+--------+3、增加记录前面已经讲过如何增加一条记录,为便于查看,重复与此:mysql> insert into mytable-> values ('abc','f','1966-08-17','china','n');Query OK, 1 row affected (0.05 sec)查看一下:mysql> select * from mytable;+----------+------+------------+-----------+--------+| name | sex | birth | birthaddr | single |+----------+------+------------+-----------+--------+| abccs|f | 1977-07-07 | china | y || mary |f | 1978-12-12 | usa | NULL || tom |m | 1970-09-02 | usa | NULL || abc |f | 1966-08-17 | china | n |+----------+------+------------+-----------+--------+3、删除记录用如下命令删除表中的一条记录:mysql> delete from mytable where name='abc'; DELETE从表中删除满足由where给出的条件的一条记录。
修改表结构1.添加字段 alter table <基本表名> add <列名> <类型> alter table s add age varchar(30)2.删除字段 alter table <基本表名> drop <列名> [cascade|restrict] alter table s drop age cascade3.修改字段 alter table <基本表名> modify <列名> <类型>、 alter table s modify age char(6)4.索引的创建 4-1>唯⼀索引(asc或desc指定升序或降序的索引值存储) create [unique] index <索引名> on <基本表名> (<列名序列>) //unique 唯⼀的 carate unique index s_index on s (sid asc,cid desc); 4-2> 普通索引 CREATE INDEX <索引的名字> ON tablename (列的列表); 5.索引的撤消 drop index <索引名> drop index s_index,sc_index⼀、简介MySQL⽬前主要有以下⼏种索引类型:1.普通索引2.唯⼀索引3.主键索引4.组合索引5.全⽂索引⼆、语句CREATE TABLE table_name[col_name data type][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext为可选参数,分别表⽰唯⼀索引、全⽂索引2.index和key为同义词,两者作⽤相同,⽤来指定创建索引3.col_name为需要创建索引的字段列,该列必须从数据表中该定义的多个列中选择4.index_name指定索引的名称,为可选参数,如果不指定,默认col_name为索引值5.length为可选参数,表⽰索引的长度,只有字符串类型的字段才能指定索引长度6.asc或desc指定升序或降序的索引值存储三、索引类型1.普通索引是最基本的索引,它没有任何限制。
用SQL语句添加删除修改字段1.增加字段alter table docdsp add dspcode char(200)2.删除字段ALTER TABLE table_NAME DROP COLUMN column_NAME3.修改字段类型ALTER TABLE table_name ALTER COLUMN column_name new_data_type4.sp_rename 改名更改当前数据库中用户创建对象(如表、列或用户定义数据类型)的名称。
语法sp_rename [ @objname = ] 'object_name' ,[ @newname = ] 'new_name'[ , [ @objtype = ] 'object_type' ]如:EXEC sp_rename 'newname','PartStock'5.sp_help 显示表的一些基本情况sp_help 'object_name' 如:EXEC sp_help 'PartStock'6.判断某一表PartStock中字段PartVelocity是否存在if exists (select * from syscolumns where id=object_id('PartStock') and name='PartVelocity')print 'PartVelocity exists'else print 'PartVelocity not exists'另法:判断表的存在性:select count(*) from sysobjects where type='U' and name='你的表名'判断字段的存在性:select count(*) from syscolumnswhere id = (select id from sysobjects where type='U' and name='你的表名') and name = '你要判断的字段名'一个小例子--假设要处理的表名为: tb--判断要添加列的表中是否有主键if exists(select 1 from sysobjects where parent_obj=object_id('tb') and xtype='PK') beginprint '表中已经有主键,列只能做为普通列添加'--添加int类型的列,默认值为0alter table tb add 列名 int default 0endelsebeginprint '表中无主键,添加主键列'--添加int类型的列,默认值为0alter table tb add 列名 int primary key default 0end7.随机读取若干条记录Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)Sql server:select top n * from 表名 order by newid()mysql select * From 表名 Order By rand() Limit n8.说明:日程安排提前五分钟提醒SQL: select * from 日程安排 where datediff(minute,f开始时间,getdate())>5 9.前10条记录select top 10 * form table1 where 范围10.包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表(select a from tableA ) except (select a from tableB) except (select a from tableC)11.说明:随机取出10条数据select top 10 * from tablename order by newid()12.列出数据库里所有的表名select name from sysobjects where type=U13.列出表里的所有的字段名select name from syscolumns where id=object_id(TableName)14.说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
数据库修改表结构语句在数据库中,可以使用`ALTER TABLE` 语句来修改表结构。
以下是一些常见的修改表结构的操作及示例语句:1. 添加列:```sqlALTER TABLE table_name ADD column_name data_type [constraint_info];```例如,向 `students` 表中添加 `age` 列,数据类型为整数:```sqlALTER TABLE students ADD age INT;```2. 修改列数据类型:```sqlALTER TABLE table_name MODIFY column_name data_type [constraint_info];```例如,将`students` 表中的`age` 列的数据类型改为小数:```sqlALTER TABLE students MODIFY age DECIMAL(5,2); ```3. 删除列:```sqlALTER TABLE table_name DROP COLUMN column_name; ```例如,从 `students` 表中删除 `age` 列:```sqlALTER TABLE students DROP COLUMN age;```4. 修改列名:```sqlALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name data_type [constraint_info];```例如,将`students` 表中的`name` 列改为`student_name`:```sqlALTER TABLE students CHANGE COLUMN name student_name VARCHAR(50);```5. 添加约束:```sqlALTER TABLE table_name ADD CONSTRAINTconstraint_name constraint_definition;```例如,向 `students` 表中的 `age` 列添加 `CHECK` 约束,限制年龄在 18 到 30 之间:```sqlALTER TABLE students ADD CONSTRAINT age_check CHECK (age BETWEEN 18 AND 30);```请注意,以上示例仅展示了一些常见的表结构修改操作,具体的语法和可用选项可能因所使用的数据库管理系统而有所不同。