• 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: 'xB2xE2xCAxD4' for column 'title' at row 1错误,而使用SQL语句查询出之前程序所新增中文数据都是乱码的。

    右击在cmd界面上面边框→属性→选项 ,查看cmd的编码方式是是GBK,并不是utf-8。

    其实数据库内部是没有乱码的,只是和cmd的编码方式不一样,在cmd呈现出来的中文数据才是乱码的,也造成了新增不了中文数据的情况。

    使用MySQL的图形界面管理工具则不存在此问题了。

    直接在mysql>下输入 set names gbk; 即可解决问题。

  • 相关阅读:
    机器学习——模型评估与选择
    论文等级
    python简介
    记忆力
    PyQt 5控件
    PyQt5对话框
    PyQt 5事件和信号
    PyQt 5菜单和工具栏
    PyQt 5布局管理
    PyQt 5的基本功能
  • 原文地址:https://www.cnblogs.com/nullcodeworld/p/8595921.html
Copyright © 2020-2023  润新知