【MySQL数据库的学习】

2023-11-05

MySQL数据库

1、 连接数据库:

mysql -u root -p
123456

2、 创建数据库:

create database 数据库名称(以字母,数字,下划线组成的字符串,但不要以数字开头)

3、 查看数据库:

show databases

4、 查看字符集:

show variables like ‘character%’

5、 查看端口号:

show variables like ‘port’

6、 查看数据存储路径:

show variables like ‘datadir'

MySQL数据库表操作

1、创建表

create table test(id int(11),name varchar(50));
create table student(sno char(11) primary key,sname varchar(20) not null);

2、创建表test

use demo
create table test(id int(11),name varchar(50));

3、创建一个表student

create table student(sno char(11) primary key,sname varchar(20) not null);

4、创建表course

mysql> create table course
    -> (
    -> cno varchar(20) primary key,
    -> course_name varchar(50) not null,
    -> cpno varchar(20),
    -> course_credit decimal(4,1)
    -> );

5、增(为表添加新的字段)

mysql> alter table student
    -> add ssex char(2) not null
    -> ;

6、改(为表中字段设置默认值)

mysql> alter table student
    -> alter ssex set default '男'
    -> ;

7、更改表名

法1

mysql> rename table test to test2;

法2

mysql> alter table test2
    -> rename to test;

8、更改student表中ssex的数据类型为枚举类型

(‘male’,'female'),默认值为‘male’

mysql> alter table student
    -> modify ssex enum('male','female') not null;

9、更改已有字段的类型

mysql> alter table student
    -> alter ssex set default 'male';

10、添加主键

mysql> alter table test
    -> add primary key(id)
    -> ;

11、添加外键

mysql> create table sc(sno char(11),
    -> cno varchar(20),
    -> grade decimal(6,2)
    -> );

12、以多个关键字组合

mysql> alter table sc
    -> add foreign key(sno) references student(sno);

mysql> alter table sc
    -> add foreign key(cno) references course(cno);

mysql> alter table sc
    -> add primary key(sno,cno);

DDL(对表结构上的操作):create alter drop

DML(表内容):insert update delete

DQL:select * from 表名 #“*”相当于投影

1、为表添加数据

insert into 表名(字段1,字段2,...) values(值1,值2,...)

mysql> insert into test(id,name) values(1,'张三');
mysql> insert into test(id) values(2);
mysql> insert into test(id,name) values(3,'li');

简写方法:省略字段部分,值需要和字段一一对应

mysql> insert into test values(4,'王五');(√)

mysql> insert into test values('王五',4);(×)

省略字段,且只给部分值

mysql> insert into test values(5,null);

一次添加多个值的方法:

mysql> insert into test(id) values(6),(7),(8),(9),(10);

mysql自有的添加记录的语句

mysql> insert into test
    -> set id=11,
    -> name='王美丽';

insert into 表2 select * from 表1;

mysql> create table demo like test;
mysql> insert into demo select *from test;

2、修改表记录

1、修改表中id为2行的值

mysql> update test set name='jerry' where id=2;

2、修改test表为其增加一个age列,默认值为20

mysql> alter table test
    -> add age int(3) not null default 20;

3、改表中两个值用or连接

mysql> update test set age=20 where id=5 or id=7;

4、在同一个条件下修改多个值,同时改name和age

mysql> update test
    -> set name='tom',
    -> age=23
    -> where id=6;

5、修改多个表,同时修改两个表中的id为8的name

mysql> update test,demo1
    -> set test.name='秦建兴',demo1.name='秦建兴'
    -> where test.id=8 and test.id=demo1.id;

6、删除记录

mysql> delete from test where id=10;  #回收

Truncate table 表名 /*彻底删除,删除数据不可恢复

补充:replace删除了一个数据并送入表中一个数据  /*安全性相对较低

mysql> replace into test(id,name,age) values(1,'王五',24);

MySQL索引与完整性约束

mysql> create table test2(id int primary key);#列级约束
mysql> create table test3(id int,primary key(id));#表级约束

1、创建普通索引(属性值可以重复)

mysql> create index idx_name on test(name) ;
mysql> desc test;
mysql> show index from test;

  1. 创建唯一索引(属性值不能重复,比较适合候选码)
mysql> create unique index idx_age on test(age);

3、表不存在时,可以创建为:

mysql> create table test4(id int,name varchar(10),
    -> primary key(id),
    -> unique(name)  #建表的同时创建唯一索引
-> );

mysql> insert into test4 values(1,'tom');(√)

mysql> insert into test4 values(2,'tom');(×)

比较几种索引

  1. 一个表只能创建一个的索引是:主键(索引)
  2. 一个表可以创建多个普通或者唯一索引
  3. 创建为索引的属性列值必须唯一的是:主索引和唯一索引,值可以重复的是普通索引

为索引命名

mysql> create table test5(id int,name varchar(10),
    -> constraint mypri primary key(id),
    -> constraint myuiq unique(name)
-> );

删除索引(可以更加索引名称,进行删除操作):

删除主键(索引),不需要使用名称

mysql> alter table test5 drop primary key;

删除其他索引,需要使用名称

mysql> alter table test5 drop index myuiq;

或者是

mysql> drop index myuiq on test5;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【MySQL数据库的学习】 的相关文章

  • Postgresql 的 SQL_NO_CACHE?

    MySQL 关键字是否有等效的 postgresqlSQL NO CACHE 或 SQL Serverdbcc drop clean buffers 即您可以简单地将其包含在 SQL 语句中或作为脚本的一部分吗 UPDATE 这个问题 查看
  • 如何从 MySQL 中的布尔类型返回不同的字符串?

    如果我在 MySql 中将一列设置为布尔值 则查询将返回以下值 0 or 1 是否可以做这样的事情 SELECT bool value AS yes OR no 我的意思是 根据真假返回两个不同的字符串 SELECT CASE WHEN b
  • 打印表数据mysql php

    我在尝试打印表格的一些数据时遇到问题 我是 php mysql 的新手 但我认为我的代码是正确的 这里是 h1 Lista de usu rios h1
  • Python MySQL 操作错误:1045,“用户 root@'localhost' 的访问被拒绝

    我试图通过以下方式从我的 python 程序访问数据库 db mysql connect host localhost user Max passwd maxkim db TESTDB cursor db cursor 但是 我在第一行代码
  • MySQL LIKE %string% 不够宽容。我还有什么可以用的吗?

    我有一位客户询问他们的搜索是否可以搜索公司名称 这些名称可以根据用户输入以多种格式进行搜索 例如数据库中存储的公司是 A J R Kelly Ltd 如果用户搜索 一个 J R Kelly 被发现 使用
  • 维护/更新mysql中的记录顺序

    我在 mySql 中有一个记录表 我需要按照用户指定的方式维护它们的订单 所以我添加了一个 位置 列 当我移动特定记录时更新所有记录的 SQL 语句是什么 我有类似的东西 UPDATE items SET position 2 WHERE
  • MySQL 字符串中的第二个(或第三个)索引

    查找字符串中第三个空格的索引的最简单方法是什么 我的目标是得到CCC在此空格分隔的列表之外 AAAA BBBB CCCC DDDD EEE 其中A B和D是固定长度 C是可变长度 E F G是可选的 在Java中 我会使用indexof 起
  • SQLAlchemy - 批量插入忽略:“重复条目”

    我有一个名为user data 列id and user id作为唯一的密钥 我想将一些历史数据导入到该表中 我用批量插入映射 http docs sqlalchemy org en rel 1 0 orm session api html
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • 是否可以将新表和旧表从触发器传递到 MySQL 中的过程中?

    是否可以将新表和旧表从触发器传递到 MySQL 中的过程中 我怀疑不会 因为没有过程接受的表这样的数据类型 有什么可能的解决方法吗 理想情况下它看起来像这样 CREATE TRIGGER Product log AFTER UPDATE O
  • MySQL:如何获取每个分组的x个结果数[重复]

    这个问题在这里已经有答案了 可能的重复 mysql 在 GROUP BY 中使用 LIMIT 来获取每组 N 个结果 https stackoverflow com questions 2129693 mysql using limit w
  • 将 MySQL 结果作为 PHP 数组

    mysql 表 config name config value allow autologin 1 allow md5 0 当前的 php 代码 sth mysql query SELECT rows array while r mysq
  • 在上下文中提取搜索字符串

    我正在尝试执行 MySQL 查询 在上下文中提取搜索字符串 因此 如果搜索是 mysql 我想从 body 列返回类似的内容 下载后只需几分钟MySQL安装程序即可使用 这就是我现在得到的 但它不起作用 因为它只是从正文字段中获取前 20
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • MySQL集群启动失败

    这不是我第一次创建ndbcluster 但我没有收到这样的问题 我正在关注本手册 https hub docker com r mysql mysql cluster by mysql团队 我正在使用回显的默认配置在此 GitHub 存储库
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 在MySQL中生成随机字符串

    我正在尝试使用函数在 phpmyadmin 中获取随机字符串 我有以下代码 CREATE FUNCTION randomPassword RETURNS varchar 128 BEGIN SET chars ABCDEFGHIJKLMNO
  • 使用来自另一个数据库的选择查询更新 mysql 表

    我有两个数据库 我想用另一个数据库表中的值更新一个表 我正在使用以下查询 但它不起作用 UPDATE database1 table1 SET field2 database2 table1 field2 WHERE database1 t
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不

随机推荐

  • Windows系统缺失crypt32.dll文件导致程序无法运行解决办法

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库 这时你可以下载这个crypt32
  • JDBC的两种实现方法及区别

    文章目录 toc JDBC 一 JDBC简介 二 通过DriverManager实现JDBC 三 通过DataSource实现JDBC 四 DataSource和DriverManager的区别 JDBC 一 JDBC简介 JDBC Jav
  • JPA最终对象转换为sql的位置

    这里以spring data jpa 3 1 1版本为例 Jpa最终是采用的hibernate进行数据库查询 因此其最终由对象转为sql的语句可以在 类ConcreteSqmSelectQueryPlan gt 方法listInterpre
  • openMPI在Linux环境下的安装和部署

    Linux环境背景 CentOS7 安装步骤 进入官网openmp org 下载压缩包openmpi 4 1 4 tar gz 将openmpi 4 1 4 tar gz放到 opt文件夹内 解压tar zxvf openmpi 4 1 4
  • vscode ~~出现黄色波浪线,解决办法~

  • SPSS(八)logistic回归(图文+数据集)

    SPSS 八 logistic回归 我们之前的线性回归也好 线性回归衍生方法也好 非线性回归也好 因变量的类型都是连续性的 假如因变量的类型是分类的呢 logistic回归针对的是二分类的因变量 logistic回归 基于线性回归模型发展而
  • VS2010每次调试都出现“此项目已经过期”提示

    问题描述 最近因为项目需要 开发平台从VS2005切换成了VS2010 把一些老项目也转换到VS2010平台 因为是从低到高升级 微软还是做了很多兼容 基本上可以无缝切换 编译调试也基本正常 但是发现有些项目 尤其是比较大的项目 刚刚编译完
  • 1.linux安装oracle12c及测试连接(详细讲解)

    1 虚拟机配置 系统Centos7 6 CPU 4H 内存 4G 硬盘 128G GUI 有 2 安装前准备 2 1配置静态IP 我们是安装服务 一个服务主机IP地址不应该的变化的 所以设置为静态 vim etc sysconfig net
  • 算法练习之反转链表

    比较久没有写算法题了 还是应该复习回顾一下 这次用新学的 rust 语言来解决算法问题 个人认为学习算法题目重要的不是解法 而是解法背后的思想 要从每一道题目中学习到解决问题的思路 定义一个函数 输入一个链表的头节点 反转该链表并输出反转后
  • Cortex-M3与Aurix的堆栈

    1 在ARM Cortex M3架构中 堆栈通常由两个寄存器来管理 主堆栈指针 MSP 和进程堆栈指针 PSP 1 1 MSP是处理器的默认堆栈指针 用于保存中断处理程序的现场 当芯片复位或发生中断时 处理器会自动将MSP的值保存到堆栈中
  • javascript之我见

    首先 须知JavaScript之出处 乃ECMAScript之变体也 诞生于1995年 为Sun Microsystems所开发 其初衷在于使得网页具有动态交互功能 诸君须知 时乃互联网方兴未艾之际 JavaScript之出 犹如孔子之出
  • 机器学习:伦敦出租车示例(数据分析,数据处理)

    原地址 http ju outofmemory cn entry 299056 记得有一个出租车对于数据分析是很好的参考范例 找找转发过来以后参考 在纽约 出租车分为两类 黄色和绿色 黄色出租 Yellow TAXI 车可以在纽约五大区 布
  • 硬件系统工程师宝典(38)-----常用接口之视频接口的电路设计

    各位同学大家好 欢迎继续做客电子工程学习圈 今天我们继续来讲这本书 硬件系统工程师宝典 上篇我们介绍了一些常用的接口带EMC保护的电路设计 有AC24V AC110 220V AV接口 CAN接口 DC12V DC24V DC48V接口 今
  • fread 读文件问题(csdn)

    http topic csdn net t 20030912 21 2254341 html fread 返回的是所有被读取的字节数 假如数目不等于请求的字节数 说明有错误发生或者到达文件结束标志 End of File 下面写了个读取完整
  • 最小二乘法ols 系数 a、b 计算公式

    对于拟合函数 Y a bX 求解 a b 需要先求出b再求a 分子分母同时除n得到 上面的公式就是网上常看到的计算b的公式
  • k型热电偶材料_常见热电偶大集合,说不定对你有用

    温度是工业自动化中的一个重要参数 温度仪表一般分接触式测量仪表与非接触式测量仪表 现代接触式温度仪表又以热电阻和热电偶为主 热电阻和热电偶分类方法很多 不过一般以材质进行分类 今天我们就来看一下常见热电偶种类 热电偶 如下图所示 热电偶是两
  • 如何免费复制百度文库上的文字

    场景 复制百度文库上的文字 一般是收费的 解决方案 按 F12 点击设置 禁用JavaScript 即可复制
  • [leetcode] 432. 全 O(1) 的数据结构

    题目链接 之前没有做过这种类型的题目 看到的时候一脸蒙圈 看了官方题解之后 了解到这个是双向链表 然后来写一下题解 我们可以维护一个链表 这个链表是一个双向的 把这个链表维护成从头节点到尾节点是单调递增的 然后我们就可以很好的通过头尾返回出
  • Ubuntu 16.04下Anaconda的安装及使用

    文章目录 一 Anaconda的下载及安装 1 下载Anaconda 2 安装Anaconda 3 配置清华镜像源 二 Anaconda的基本使用 1 管理conda版本 2 管理虚拟环境 3 安装第三方包 三 Anaconda的卸载及重装
  • 【MySQL数据库的学习】

    MySQL数据库 1 连接数据库 mysql u root p 123456 2 创建数据库 create database 数据库名称 以字母 数字 下划线组成的字符串 但不要以数字开头 3 查看数据库 show databases 4