MySQL数据库(三)
1. 创建表
create table student(
id int unsigned not null auto_increment primary key,
name varchar(8) not null,
sex char(4) not null
)engine=InnoDB default charset='utf8';
注意不存在utf-8。
MySQL自增型字段的值从1开始递增,且步长为1。设置自增型字段的语法格式如下。
字段名 数据类型 auto_increment
-- 设置主键(Primary Key)约束
-- 如果一个表的主键是多个字段的组合(例如字段名1与字段名2共同组成主键),定义完所有的字段后,使用下面的语法规则将(字段名1, 字段名2)设置为复合主键。
-- primary key (字段名1, 字段名2)
create table student(
id int unsigned not null ,
name varchar(8) not null,
sex char(4) not null,
primary key (id,name)
)engine=InnoDB default charset='utf8';
2.复制一个表
方法一:在create table语句的末尾添加like子句,可以将源表的表结构复制到 新表中,语法格式如下。
-- create table 新表名
like 源表;
create table newstudent like student;
方法二:在create table语句的末尾添加一个select语句,可以实现表结构的复制,甚至可以将源表的表记录拷贝到新表中。下面的语法格式将源表的表结构以及源表的所有记录拷贝到新表中。
-- create table 新表名 select * from 源表
;
create table newstudents select * from student;
3.添加约束条件
-- alter table 表名 add constraint 约束名 约束类型 (字段名)
例:如果没有主键,添加主键约束。
alter table student add constraint sid primary key (id);
例:添加外键约束
alter table ss add constraint aa foreign key (ip) references s (id);
·删除约束条件
删除表的主键约束条件语法格式比较简单,语法格式如下。
alter table 表名 drop primary key
4.mysql在cmd中乱码问题
MySQL是默认utf8编码的,所建数据库也是设置utf8编码,使用程序可以新增中文数据,在cmd中使用SQL语句新增数据则报类似Incorrect string value: '\xB2\xE2\xCA\xD4' for column 'title' at row 1错误,而使用SQL语句查询出之前程序所新增中文数据都是乱码的。
右击在cmd界面上面边框→属性→选项 ,查看cmd的编码方式是是GBK,并不是utf-8。
其实数据库内部是没有乱码的,只是和cmd的编码方式不一样,在cmd呈现出来的中文数据才是乱码的,也造成了新增不了中文数据的情况。
使用MySQL的图形界面管理工具则不存在此问题了。
直接在mysql>下输入 set names gbk; 即可解决问题。
本文来自博客园,作者:一纸年华,转载请注明原文链接:https://www.cnblogs.com/nullcodeworld/p/8595921.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)