Mac 终端操作数据库
名词解释:
事务:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。简称:原子性
1.进入mysql命令: /usr/local/mysql/bin/mysql -u root -p
2.输入你的密码:xxxx
3. 连接远程服务器 mysql -h 39.106.41.11 -utest -pgloryroad -p3306
mysql 命令需要增加到path路径下
4.展示数据库:show databases;
5.切换数据库: use 数据库名称;
6.查看你当前选中的数据库:select database();
7.展示数据库中的表: show tables;
8.创建数据库:create database gloryroad;
9.创建表:create table test(id int,name varchar(20));
10:插入数据:insert into test values(1,"lilaoshi");
11.更新数据:update test set name="cailaoshi" where id = 2;
12.删除数据库:drop database gloryroad; (慎重操作)
13.删除表的数据:delete from test;
14.删除表数据和表结构:drop table test;
15.建一个复杂的表:CREATE TABLE `studentinfo` ( `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '不为空的自增长的主键ID', `student_id` varchar(20) NOT NULL, `name` varchar(30) NOT NULL, `sex` char(4) DEFAULT NULL, `tel` varchar(13) NOT NULL, `AdmissionDate` timestamp DEFAULT '0000-00-00 00:00:00', `status` tinyint(2) DEFAULT '0', PRIMARY KEY (`ID`), UNIQUE KEY `tel` (`tel`), UNIQUE KEY `student_id` (`student_id`) ) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COMMENT='学生信息表';
遇到了一个错误:
ERROR 1067 (42000): Invalid default value for 'AdmissionDate'
产生的原因:
是因为sql_mode中的NO_ZEROR_DATE导制的,在strict mode中不允许'0000-00-00'作为合法日期
查看sql_mode:show variables like 'sql_mode';
+---------------+--------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+--------------------------------------------------------------------------------------------------------------+
解决办法:set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
16:创建一个关联的表:
create table grade( ID int auto_increment not null, stuID varchar(20), course varchar(20) not null, score tinyint(4) default 0, primary key (ID), key idx_stuid(stuID), CONSTRAINT FK_ID FOREIGN KEY(stuID) REFERENCES studentInfo(student_id) )engine=innodb character set utf8 comment "学生成绩表";
名词解释-外键:
外键: grade表中插入的stuID字段的数据必须在studentInfo 的student_id中存在,不在,则不让插入。 删除studentInfo中的student_id数据,那么grade中相关 的stuID数据必须先删除,才能成功。
示例:
studentInfo student_id:2007123 #不能直接删除,grade表中 删除2007123,就可以删除 student_id:2007123 grade: stuID:2007124 插入失败 stuID:2007123 插入成功--》把删掉
*************************************************华丽的分割线***************************************************
python操作数据库的模式:
写一堆参数连接数据
获取游标
执行sql
关闭游标
关闭连接
Mac 终端操作数据库的更多相关文章
- Mysql使用终端操作数据库
使用终端操作数据库 1.如何查看有什么数据库? show databases; 2.如何选择数据库? use databasesName; 3. ...
- mysql Mac终端操作
1.启动mysql :brew services start mysql 2.登陆mysql : mysql -u root -p mysql 命令. -u 后面接用户名 root超级管理 ...
- Mac终端操作移动硬盘文件命令
桌面上看到的硬盘都挂载在 /Volumes目录下 例如移动硬盘名为ZTB,有System目录,则应输入命令: cd /Volumes/ZTB/System 注意:进入Volumes目录命令为cd /V ...
- Mac终端操作SVN指令
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain ...
- mac安装mysql及终端操作mysql与pycharm的数据库可视化
一.Mac安装mysql 首先下载mysql,地址:https://dev.mysql.com/downloads/mysql/ 然后已知安装就好了,会出现让你记住密码的提示,然后就安装好了.... ...
- iOS阶段学习第一天笔记(Mac终端的操作)
前言部分 原本从事的是.NET开发,一直在要不要转iOS 中犹豫徘徊,经过复杂的内心挣扎终于鼓起勇气辞职脱产学习iOS;希望通过四个月的 学习后能够拿到理想的薪资.以下是学习过程中的学习笔记,为了方便 ...
- iOS mac终端下的SQL语句
本文转载至 http://blog.csdn.net/majiakun1/article/details/41281801 我们都知道数据库的创建可以借助图形化的数据库工具软件,但也可以在Mac终端下 ...
- Mac终端处理MySql
进入数据库: mysql -u root -p 随后输入密码:root 原文出处: GarveyCalvin的博客(@GarveyCalvin) MySQL有很多的可视化管理工具,比如“mysql ...
- node.js操作数据库之MongoDB+mongoose篇
前言 node.js的出现,使得用前端语法(javascript)开发后台服务成为可能,越来越多的前端因此因此接触后端,甚至转向全栈发展.后端开发少不了数据库的操作.MongoDB是一个基于分布式文件 ...
随机推荐
- DF标志和串移动指令(movsb/movsw)
1.标志寄存器的第10位DF,方向标志位.在串处理指令中,控制每次操作后si,di的增减 DF=0,每次操作后,si.di添加 DF=1,每次操作后,si.di减小 我们能够用汇编语法描写叙述movs ...
- Bloxorz I (poj 3322 水bfs)
Language: Default Bloxorz I Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5443 Acce ...
- thinkphp5项目--企业单车网站(二)
thinkphp5项目--企业单车网站(二) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps:/ ...
- zzulioj--1815--easy problem(暴力加技巧)
1815: easy problem Time Limit: 1 Sec Memory Limit: 128 MB Submit: 98 Solved: 48 SubmitStatusWeb Bo ...
- Sub Thread to update main Thread (UI)
Sub Thread to update main Thread (UI) main Thread : A has Hander.HandleMessage() to process the & ...
- 紫书 例题 9-9 UVa 10003 (区间dp+递推顺序)
区间dp,可以以一个区间为状态,f[i][j]是第i个切点到第j个切点的木棍的最小费用 那么对于当前这一个区间,枚举切点k, 可以得出f[i][j] = min{dp(i, k) + dp(k, j) ...
- Swift实战(2)--在工程中添加object-C的类或者第三方框架(附翻译)
原文地址:http://stackoverflow.com/questions/24002369/how-to-call-objective-c-code-from-swift Using Objec ...
- JavaScript定时调用函数(SetInterval与setTimeout)
setTimeout和setInterval的语法同样.它们都有两个參数.一个是将要运行的代码字符串.另一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将运行那段代码. 只是这两个函数还是有差别的 ...
- MySql 存储引擎的选取
存储引擎是为不同的表类型处理 SQL 操作的 MySql 组件.InnoDB 是默认的.最通用的存储引擎,也是官方推荐使用的存储引擎,除非一些特定案例.MySql 5.6 中的 CREATE TABL ...
- jquery15 on() trigger() : 事件操作的相关方法
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...