mysql新建表 中是不是自带描述字段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql新建表 中是不是自带描述字段?相关的知识,希望对你有一定的参考价值。

如题,表示我在使用mysql的时候,想新建N多个表,然后每个表下,自然是有一定的使用说明,但是不知道,mysql的新建的表中,是否就有系统预定义的字段来进行写入描述,还是需要自己再新建字段进行描述?
主要是因为,如果是自己新建字段进行描述的话,对于进行数据提取的时候,有一定的干扰.
求前辈们指点一下,这种情况如何处理

可以直接自己添加描述字段。

DROP TABLE IF EXISTS `user`;

CREATE TABLE user 

( idBIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT

COMMENT '主键',

username      VARCHAR(50)         NOT NULL DEFAULT ''

COMMENT '用户名',

username_type VARCHAR(20)         NOT NULL DEFAULT ''

COMMENT '用户类型',

user_password VARCHAR(50)         NOT NULL DEFAULT ''

COMMENT '用户密码',

create_time   TIMESTAMP           NOT NULL DEFAULT CURRENT_TIMESTAMP

COMMENT '创建时间',

update_time   TIMESTAMP           NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE

CURRENT_TIMESTAMP

COMMENT '更新时间',

PRIMARY KEY (id),

UNIQUE KEY idx_urn(username) USING BTREE

)

ENGINE = InnoDB

DEFAULT CHARSET = utf8mb4

COMMENT = '用户信息表';

或者。

#创建表的时候写注释

CREATE TABLE userinfo(

id INT COMMENT '编号',

uname VARCHAR(40) COMMENT '用户名',

address VARCHAR(120) COMMENT '家庭住址',

hobby VARCHAR(200) COMMENT '爱好'

)COMMENT = '用户信息表';

#修改表的注释

ALTER TABLE userinfo COMMENT '用户信息资料表';

#修改字段的注释,注意:字段名和字段类型照写就行

ALTER TABLE userinfo MODIFY COLUMN uname VARCHAR(40) COMMENT '姓名';

#查看表注释的方法,在生成的SQL语句中看

SHOW CREATE TABLE userinfo;

#在元数据的表里面看

USE information_schema;

SELECT * FROM TABLES WHERE TABLE_SCHEMA='shoppingcart' AND TABLE_NAME='userinfo';

#查看字段注释的方法

SHOW FULL COLUMNS FROM userinfo;

#在元数据的表里面看

SELECT * FROM COLUMNS WHERE TABLE_SCHEMA='shoppingcart' AND TABLE_NAME='userinfo';

扩展资料:

mysql查询和索引:

只有当数据库里已经有了足够多的测试数据时,它的性能测试结果才有实际参考价值。如果在测试数据库里只有几百条数据记录,它们往往在执行完第一条查询命令之后就被全部加载到内存里,这将使后续的查询命令都执行得非常快--不管有没有使用索引。

只有当数据库里的记录超过了 1000 条、数据总量也超过了 MySQL 服务器上的内存总量时,数据库的性能测试结果才有意义。

在不确定应该在哪些数据列上创建索引的时候,人们从 EXPLAIN SELECT 命令那里往往可以获得一些帮助。这其实只是简单地给一条普通的 SELECT 命令加一个 EXPLAIN 关键字作为前缀而已。

有了这个关键字,MySQL 将不是去执行那条 SELECT 命令,而是去对它进行分析。MySQL 将以表格的形式把查询的执行过程和用到的索引等信息列出来。

在 EXPLAIN 命令的输出结果里,第1列是从数据库读取的数据表的名字,它们按被读取的先后顺序排列。type列指定了本数据表与其它数据表之间的关联关系(JOIN)。在各种类型的关联关系当中。

效率最高的是 system,然后依次是 const、eq_ref、ref、range、index 和 All(All 的意思是:对应于上一级数据表里的每一条记录,这个数据表里的所有记录都必须被读取一遍——这种情况往往可以用一索引来避免)。

possible_keys 数据列给出了 MySQL 在搜索数据记录时可选用的各个索引。key 数据列是 MySQL 实际选用的索引,这个索引按字节计算的长度在 key_len 数据列里给出。

比如说,对于一个 INTEGER 数据列的索引,这个字节长度将是4。如果用到了复合索引,在 key_len 数据列里还可以看到 MySQL 具体使用了它的哪些部分。作为一般规律,key_len 数据列里的值越小越好。

ref 数据列给出了关联关系中另一个数据表里的数据列的名字。row 数据列是 MySQL 在执行这个查询时预计会从这个数据表里读出的数据行的个数。row 数据列里的所有数字的乘积可以大致了解这个查询需要处理多少组合。

最后,extra 数据列提供了与 JOIN 操作有关的更多信息,比如说,如果 MySQL 在执行这个查询时必须创建一个临时数据表,就会在 extra 列看到 usingtemporary 字样。

参考资料来源:百度百科-MySQL



参考技术A

mysql新建表中没有自带描述字段,但可以自己添加描述字段。

( idBIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT

COMMENT '主键',

username      VARCHAR(50)         NOT NULL DEFAULT ''

COMMENT '用户名',

username_type VARCHAR(20)         NOT NULL DEFAULT ''

COMMENT '用户类型',

user_password VARCHAR(50)         NOT NULL DEFAULT ''

COMMENT '用户密码',

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS应用软件之一。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

扩展资料:

mysql系统特性:

1、使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。

2、支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。

3、为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、php、Eiffel、Ruby,.NET和 Tcl 等。

4、支持多线程,充分利用 CPU 资源。

5、优化的 SQL查询算法,有效地提高查询速度。

6、既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。

7、提供多语言支持,常见的编码如中文的 GB 2312、BIG5,日文的 Shift_JIS等都可以用作数据表名和数据列名。

8、提供 TCP/IP、ODBC 和 JDBC等多种数据库连接途径。

9、提供用于管理、检查、优化数据库操作的管理工具。

10、支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

参考资料来源:百度百科-mySQL

参考技术B CREATE TABLE IF NOT EXISTS `test1` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(15) COLLATE utf8_unicode_ci NOT NULL COMMENT '姓名',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='表描述' AUTO_INCREMENT=1 ;

比如这个建表例子,如果你要给表加描述的注释就写在COMMENT='表描述' 里, 把表描述改成你想描述的东西。如果你要注释表里的某个字段,同样可以改字段里的COMMENT 后面的内容追问

前辈,我能不能理解为,mysql的表下,每个新建的 字段 都有 COMMENT 这个属性呢?就是不用自己另外新建,直接系统默认自带就有这个属性?求指点.

追答

是啊,直接用comment就行,不用另外建就是相当于对字段的注释信息。如果你用一些数据库软件的话,有些软件你把鼠标放在这个字段上,它就会显示这个字段的注释了

本回答被提问者采纳

mysql联表查询,使用phpStudy自带的

一.内联结、外联结、左联结、右联结的含义及区别
在SQL标准中规划的(Join)联结大致分为下面四种:
1.内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。
2.外联结:分为外左联结和外右联结。
左联结A、B表的意思就是将表A中的全部记录和表B中联结的字段与表A的联结字段符合联结条件的那些记录形成的记录集的联结,这里注意的是最后出来的记录集会包括表A的全部记录。
右联结A、B表的结果和左联结B、A的结果是一样的,最后出来的记录集会包括表B的全部记录。具体如下:

Select lqf_user.id,lqf_user.userName,lqf_job.id,lqf_job.userName From lqf_user Left Join lqf_job On lqf_user.id=lqf_job.id

技术分享

 

Select lqf_user.id,lqf_user.userName,lqf_job.id,lqf_job.userName From lqf_user Right Join lqf_job On lqf_job.id=lqf_user.id;

技术分享

3.全联结:将两个表中存在联结关系的字段的所有记录取出形成记录集的联结。
4.无联结:没有使用联结功能,也有自联结的说法。

内外联结的区别是内联结将去除所有不符合条件的记录,而外联结则保留其中部分。外左联结与外右联结的区别在于如果用A左联 结B则A中所有记录都会保留在结果中,此时B中只有符合联结条件的记录,而右联结相反。

 

 2.外左联结

这样查询得到的结果将会是保留所有A表中联结字段的记录,若无与其相对应的B表中的字段记录则留空,结果如下:

Select lqf_job.id,lqf_job.userName From lqf_user Left Join lqf_job On lqf_user.id=lqf_job.id;

技术分享

3.外右联结

出来的记录已以lqf_job记录为标准

Select lqf_job.id,lqf_job.userName From lqf_user right Join lqf_job On lqf_user.id=lqf_job.id

技术分享

 

 Select lqf_job.id,lqf_job.userName,lqf_job.jobName From lqf_user right Join lqf_job On lqf_user.id=lqf_job.id and lqf_user.userName=lqf_job.userName;

技术分享

 

 

三.联表查询中用到的一些参数

1.USING (column_list):
其作用是为了方便书写联结的多对应关系,大部分情况下USING语句可以用ON语句来代替,如下面例子:
Select lqf_job.id,lqf_job.userName,lqf_job.jobName From lqf_user right Join lqf_job using (id,userName);,其作用相当于
Select lqf_job.id,lqf_job.userName,lqf_job.jobName From lqf_user right Join lqf_job On lqf_user.id=lqf_job.id and lqf_user.userName=lqf_job.userName;

技术分享


2.STRAIGHT_JOIN:
由于默认情况下MySQL在进行表的联结的时候会先读入左表,当使用了这个参数后MySQL将会先读入右表,这是个MySQL的内置优化参数,大家应该在特定情况下使用,譬如已经确认右表中的记录数量少,在筛选后能大大提高查询速度。

Select lqf_job.id,lqf_job.userName,lqf_job.jobName From lqf_user STRAIGHT_JOIN lqf_job On lqf_user.id=lqf_job.id and lqf_user.userName=lqf_job.userName;

技术分享

 

查询两表全部信息:

Select * From lqf_user Left Join lqf_job On lqf_user.id=lqf_job.id;

技术分享

其他:数据库的基本语法:

 

#显示数据库
show databases;

#判断是否存在数据库wpj1105,有的话先删除
drop database if exists student;

#创建数据库
create database student;

#删除数据库
drop database student;

#使用该数据库
use  class;

#显示数据库中的表
show tables;

#先判断表是否存在,存在先删除
drop table if exists student1;

技术分享

 

#创建表
create table student(
id int auto_increment primary key,
name varchar(50),
sex varchar(20),
date varchar(50),
content varchar(100)
)default charset=utf8;

#删除表
drop table student;

#查看表的结构
describe student;  #可以简写为desc student;

技术分享

 

#插入数据
insert into student values(null,‘dd‘,‘男‘,‘1998-10-2‘,‘......‘),(null,‘bb‘,‘女‘,‘1889-03-6‘,‘......‘),(null,‘cc‘,‘女‘,‘1899-03-6‘,‘......‘),(null,‘cc‘,‘男‘,‘1894-03-6‘,‘......‘);//多条数据
insert into student values(null,‘aa‘,‘女‘,‘1889-03-6‘,‘......‘);//插入单条数据

#查询表中的数据

# and 且
select * from student where date>‘1989-1-2‘ and date<‘1998-12-1‘;

技术分享

# or 或

select * from student where date<‘1899-11-2‘ or date>‘1990-12-1‘;

 技术分享

#between

select * from student where date between ‘1890-1-2‘ and ‘1994-12-1‘;

技术分享

 

 #in 查询制定集合内的数据
select * from student where id in (1,3,5);

 

#排序 asc 升序  desc 降序

ORDER BY 语句

ORDER BY 语句用于根据指定的列对结果集进行排序。

ORDER BY 语句默认按照升序对记录进行排序。

如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。

 select * from student order by id desc;

技术分享

 

#分组查询 #聚合函数 
select max(id),name,sex from student group by sex;

select min(date) from student;

select avg(id) as ‘求平均‘ from student;

select count(*) from student;   #统计表中总数

select count(sex) from student;   #统计表中性别总数  若有一条数据中sex为空的话,就不予以统计~

select sum(id) from student;

#查询第i条以后到第j条的数据(不包括第i条)

技术分享

 

#修改表的名字
#格式:alter table tbl_name rename to new_name
alter table c rename to a;
 
#表结构修改
create table test
(
id int not null auto_increment primary key, #设定主键
name varchar(20) not null default ‘NoName‘, #设定默认值
department_id int not null,
position_id int not null,
unique (department_id,position_id) #设定唯一值
);

#向表中增加一个字段(列)
#格式:alter table student add type_id int;/alter table student add(type_id int);
alter table student add  type_id varchar(20);

#修改表中某个字段的名字
alter table tablename change columnname newcolumnname type;  #修改一个表的字段名
alter table student change name uname varchar(50);

select * from student;

技术分享

 

#表student 增加列test
alter table student add(test char(10));

技术分享

 


#表student 修改列test
alter table student modify test char(20) not null;
#表student 去掉列test
alter table student drop column test;

 

以上是关于mysql新建表 中是不是自带描述字段?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL-Front 建表引发的一点小思考(数据表格模版)

MySQL建表规范与常见问题

Mysql的建表规范与注意事项

有关mysql数据库建表问题

0301mysql数据库建表情况

sql server建表时怎么设置ID字段自增