mysql 建表定义中 int(10),这个10代表啥?

Mysql数据表定义中我们经常用int(M),这个M默认是11,我们可以写10,或者3

 

这个东西对于mysql存储的数值没有任何影响,mysql存储的数值范围如下所示(32位系统),这个定义的唯一作用,需要与zerofill配合使用,如果启用了zerofill,就是当数值的位数<M的时候,左侧自动以0补齐,>M的时候没有任何作用,如果启用了zerofill,程序中对查询出的int值需要做intval处理才能正确使用,其实是一件比较坑爹的事情,所以基本没有人这么用

总结一句话就是,int(M),M其实对我们没有任何影响,建议大家定义表结构时忽略此值

 

1.BIT[M]

位字段类型,M表示每个值的位数,范围从1到64,如果M被忽略,默认为1

2.TINYINT[(M)] [UNSIGNED] [ZEROFILL] M默认为4

很小的整数。带符号的范围是-128到127。无符号的范围是0到255。

3. BOOL,BOOLEAN

是TINYINT(1)unsigned的同义词。zero值被视为假。非zero值视为真。范围是-128到127

4.SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默认为6

小的整数。带符号的范围是-32768到32767。无符号的范围是0到65535。

5.MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默认为9

中等大小的整数。带符号的范围是-8388608到8388607。无符号的范围是0到16777215。

6. INT[(M)] [UNSIGNED][ZEROFILL]   M默认为11

普通大小的整数。带符号的范围是-2147483648到2147483647。无符号的范围是0到4294967295。

7.BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默认为20

大整数。带符号的范围是-9223372036854775808到9223372036854775807。无符号的范围是0到18446744073709551615。

### 创带主键的 MySQL 语法 在 MySQL 中,`CREATE TABLE` 语句用于定义及其结构。为了指定主键(Primary Key),可以在 `CREATE TABLE` 语句中使用 `PRIMARY KEY` 关键字来约束某一列或多列作为唯一标识符[^1]。 以下是创带有主键的的标准语法: ```sql CREATE TABLE table_name ( column1_name data_type constraints, column2_name data_type constraints, ... PRIMARY KEY (column_name) ); ``` #### 示例:创一个具有单列主键的 下面是一个具体的例子,展示如何创一张名为 `users` 的,并设置 `id` 列为主键: ```sql CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, email VARCHAR(100), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ); ``` 在此示例中: - `id` 被声明为整数类型 (`INT`) 并设置了不可为空 (`NOT NULL`) 和自动递增属性 (`AUTO_INCREMENT`)。 - 主键被分配给 `id` 列以确保每条记录都有唯一的标识[^4]。 #### 多列联合主键的例子 如果需要多个字段共同组成主键,则可以这样写: ```sql CREATE TABLE orders ( order_id INT NOT NULL, product_id INT NOT NULL, quantity INT, PRIMARY KEY (order_id, product_id) ); ``` 这里,`orders` 中的 `(order_id, product_id)` 组合起来形成复合主键,意味着任何两行数据都不能拥有相同的 `order_id` 和 `product_id` 值组合[^5]。 通过上述方法即可成功构包含主键的新,在实际应用过程中可以根据业务需求调整各字段的具体参数配置[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值