MySQL数据库操作全攻略:从创建到约束

注意!!!mysql中的所有语句后面都要加;才能运行,不然可能会报错

前面讲了mysql的安装,现在这节来复习,sql的使用。包括创建数据库,创建表(包含导入表、创建表头然后一个一个添加 ),

数据库的创建

CREATE  DATABASE db_name;

这样就ok了

在数据库中输入这句话,我们就可以创建一个数据库了,此时库内空的,后面需要我们创建一个又一个的表放在里面。

表的创建

1 直接创建

例如我们要创建这样一个表,我们就可先创建一个这样的表头,然后再insert内容就好了(注意这里在创建表之间要先 《use 数据库名称》,这样会进入到那个数据库中,然后才能进行创建)

create table Student(
            SId varchar(10),
            Sname varchar(10),
            Sage datetime,
            Ssex varchar(10)
        ); 

然后接下来就是往表中添加内容了

    insert into Student values('01' , '赵雷' , '1990-01-01' , '男'); 
    insert into Student values('02' , '钱电' , '1990-12-21' , '男'); 
    insert into Student values('03' , '孙⻛' , '1990-12-20' , '男'); 
    insert into Student values('04' , '李云' , '1990-12-06' , '男'); 
    insert into Student values('05' , '周梅' , '1991-12-01' , '⼥'); 
    insert into Student values('06' , '吴兰' , '1992-01-01' , '⼥'); 
    insert into Student values('07' , '郑⽵' , '1989-01-01' , '⼥'); 
    insert into Student values('09' , '张三' , '2017-12-20' , '⼥'); 
    insert into Student values('10' , '李四' , '2017-12-25' , '⼥'); 
    insert into Student values('11' , '李四' , '2012-06-06' , '⼥'); 
    insert into Student values('12' , '赵六' , '2013-06-13' , '⼥'); 
    insert into Student values('13' , '孙七' , '2014-06-01' , '⼥'); 

成功之后是这样的

然后我们可以查看我们创建的内容

这里语法是                SELECT * FROM 表名; 

SELECT * FROM Student;

然后这样我们就创建好了。

2 导入创建

这样创建可能会有点麻烦,如果我们有一个csv文件,我们就可以直接导入创建了。

例如我现在有一个csv文件

现在我把这个拖入

然后就会出现这个,其实这里是把文件放到了虚拟机的缓存系统中。(如果有错误可能是虚拟机没设置好,可以查看下虚拟机设置看这里是否勾选了启用拖放)

然后‘/tmp/VMwareDnD/bXo7An/test1.txt.txt’这个就是他的真实地址,我们可以查看

然后我们可以使用(这里也会报错,因为要有一个权限被打开才行)

在/etc/my.cnf文件中添加下面这句话,然后再以mysql --local-infile=1 -u root -p这样打开sql

[mysqld]
local_infile = 1

这个是导入时的语法

LOAD DATA local  INFILE '数据地址' INTO TABLE 要创建的数据名称 FIELDS TERMINATED BY ',' ;

 这个和上面一样也要先创建表头

CREATE TABLE  students(
  id VARCHAR(255) PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  age INT,
  gender VARCHAR(255),
  clazz VARCHAR(255)
);

然后在导入我们的本地数据

 LOAD DATA LOCAL INFILE '/tmp/VMwareDnD/bXo7An/test1.txt.txt'  INTO TABLE students  FIELDS TERMINATED BY ','  LINES TERMINATED BY '\n';

增加一列

alter table students add length float;

如下图所示:

删除列

alter table students drop length;

删除表

DROP TABLE students;

修改列中某个元素的值

语法

UPDATE 表名 
SET 列名 = 新值 
WHERE 条件; 

示例

PRIMARY KEY 标识

PRIMARY KEY 是一列或一组列,其值唯一标识表中的每一行。一个表只能有一个PRIMARY KEY。在表创建时,可以指定其中的一列为主键,也可以使用多列来组合作为主键。对于多列组合主键,它们的值的组合必须是唯一的。

CREATE TABLE employees (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT
);

从下面我可以看到,我输入id的大小不会自动排序,但是我输入一个重复的id就会报错。而其他普通元素就可以重复。

 KEY AUTO_INCREMENT标识

AUTO_INCREMENT是一种MySQL特有的属性,它允许一个整数列自动增长,每次插入新行时自动递增。这通常用于为表创建一个唯一的、自动生成的数字标识符。必须将AUTO_INCREMENT属性与INTEGER数据类型一起使用,通常是使用INT或BIGINT数据类型。

CREATE TABLE users (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50)
);

在上面的代码中,每次插入一行时,MySQL将自动为id列生成一个新的唯一值,而不需要手动为该列指定一个值。这使得插入新行时更加方便,同时也确保每个行都有一个唯一的标识符。

UNIQUE标识

这个和上面的差不多,但是这个可能稍弱一点,只是限制不能有重复的。

CREATE TABLE students (
    student_id INT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE
);

假设有一个“学生”数据表,其中包含学生ID、姓名和电子邮件地址。为了确保每个学生的电子邮件地址是唯一的,可以在“电子邮件地址”列上创建UNIQUE约束。

FOREIGN KEY使用

假设有一个“订单”数据表和一个“产品”数据表,其中“订单”表包含订单ID、订单日期和产品ID,而“产品”表包含产品ID、产品名称和产品价格。为了确保订单中的每个产品ID都是有效的,可以在“订单”表中为“产品ID”列创建FOREIGN KEY约束,该约束参照“产品”表中的“产品ID”列。

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(50) NOT NULL,
    price DECIMAL(8, 2) NOT NULL
);

CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    order_date DATE NOT NULL,
    product_id INT,
    FOREIGN KEY (product_id) REFERENCES products(product_id)
);

在上面的代码中,我们创建了一个名为“products”的数据表和一个名为“orders”的数据表,并在“orders”表中为“product_id”列创建了一个FOREIGN KEY约束。这将确保订单中的每个产品ID都是有效的,并且参照了“products”表中的产品ID列。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值