Mysql 基本用法
Java中两种常用的数据库: MYSQL Oracle
MYSQL :开源免费的数据库,小型的数据库。由瑞典MySQL AB 公司开发,适合中小企业使用,由C语言和C++编写的。已经被Oracle收购了MySQL6.x版本也开始收费。
Oracle :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。
MYSQL启动:
1. 登入mysql:
格式1:cmd> mysql –u用户名 –p密码
例如:mysql -uroot –proot
格式2:cmd> mysql --host=ip地址 --user=用户名 --password=密码
例如:mysql --host=127.0.0.1 --user=root --password=root
SQL通用语法
1. SQL语句可以单行或多行书写,以分号结尾
2. 可使用空格和缩进来增强语句的可读性
3. MySQL数据库的SQL语句不区分大小写,关键字建议使用大写
4. 例如:SELECT * FROM user。
5. 同样可以使用/**/的方式完成注释
6. MySQL中的我们常使用的数据类型如下
数据库操作:database
创建数据库* create database 数据库名;
#创建数据库数据库中数据的编码采用的是安装数据库时指定的默认编码 utf8
CREATE DATABASE webdb_1;
查看数据库
show databases;
查看某个数据库的定义的信息:
show create database 数据库名;
show create database webdb_1;
删除数据库
drop database 数据库名称;
drop database webdb_2;
切换数据库:
use 数据库名;
数据表操作:table
create table 表名(
字段名类型(长度) [约束],
字段名类型(长度) [约束],
...
);
类型:
varchar(n)字符串
int 整形
double 浮点
date 时间
timestamp 时间戳
删除表格式:drop table 表名;
例如:drop table category;
修改表结构
/*
修改表添加列:alter table 表名 add 列名类型[长度] [约束];
*/
ALTER TABLE category ADD NAME INT;
/*
修改表修改列的类型长度及约束.:
alter table 表名 modify 列名类型[长度] [约束];
注意: 如果有数据,必须注意数据类型varchar-->int 容易有错误数据
*/
ALTER TABLE category MODIFY description INT;
ALTER TABLE category MODIFY description VARCHAR(20) NOT NULL;
/*
修改列名以及数据类型和约束:
alter table 表名 change 原列名新列名类型[长度] [约束];
*/
ALTER TABLE category CHANGE description descr INT;
插入表数据
往数据库表中插入数据:使用关键字 insert [into]
格式:
包含主键:insert into 表名(字段1,字段2,...) values(值1,值2,...);
主键自增,省略主键:insert into 表名(不包含主键) values(不包含主键);
-- 包含主键:insert into 表名(字段1,字段2,...) values(值1,值2,...);
INSERT INTO category (cid,cname) VALUES(1,"服装");
-- 主键自增,省略主键:insert into 表名(不包含主键) values(不包含主键);
INSERT INTO category (cname) VALUES("彩电");
批量插入数据
格式:
包含主键:insert into 表名(字段1,字段2,...) values(值1,值2,...),(值1,值2,...),(值1,值2,...)...
主键自增,省略主键:insert into 表名(不包含主键) values(不包含主键),(值1,值2,...),(值1,值2,...)...;
更新表数据,使用关键字 update(更新,修改) set(设置)
格式:
不带条件过滤,一次修改列中所有的数据
update 表名 set 字段名=字段值,字段名=字段值,...;
带条件过滤,使用关键字where
update 表名 set 字段名=字段值,字段名=字段值,... where 过滤条件;
删除表数据使用关键字 delete(删除) from(来自)
格式:
delete from 表名 [where 条件过滤];
delete from 表名删除表中的所有数据,但是不会删除主键自增
truncate table 表名;删除表中的所有数据,会删除主键自增,让主键自增重置重1开始
主键约束使用关键字 primary key
非空约束使用关键字 not null
-- 创建唯一约束的第一种格式,创建表时,在字段后直接给出
-- 添加的第一种方式,在列名之后直接添加
CREATE TABLE persons(
Id_P INT PRIMARY KEY,
LastName VARCHAR(255) UNIQUE,
City VARCHAR(255) NOT NULL
);
-- 删除主键
-- ALTER TABLE Persons DROP PRIMARY KEY
-- 删除非空约束
ALTER TABLE persons MODIFY city VARCHAR(255);
删除唯一约束 ALTER TABLE Persons DROP INDEX 名称
定义约束的时候,如果没有创建名称,则名称为字符串
ALTER TABLE persons DROP INDEX LastName;
MySQL数据库密码重置(扩展)
a. 停止mysql服务器运行输入services.msc 停止mysql服务
b. 在cmd下,输入mysqld --console --skip-grant-tables 启动服务器,出现一下页面,不要关闭该窗口
c. 新打开cmd,输入mysql -uroot 不需要密码
use mysql;
update user set password=password('abc') WHERE User='root';
d. 关闭两个cmd窗口
Mysql 基本用法的更多相关文章
- 【转载】 mysql explain用法
转载链接: mysql explain用法 官网说明: http://dev.mysql.com/doc/refman/5.7/en/explain-output.html 参数: htt ...
- 知识点:Mysql 基本用法之存储过程
存储过程 一. 介绍 存储过程包含了一系列可执行的sql语句,存储过程存放于MySQL中,通过调用它的名字可以执行其内部的一堆sql 使用存储过程的优点: 用于替代程序写的SQL语句,实现程序与sql ...
- 知识点:Mysql 基本用法之视图
视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时 ...
- 知识点:Mysql 基本用法之流程控制
流程控制 一. 条件语句 if 语句实例: delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = ...
- 知识点:Mysql 基本用法之函数
函数 MySQL中提供了许多内置函数 例如: sql 内置函数: 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种 ...
- 知识点:Mysql 基本用法之触发器
触发器 使用触发器可以定制用户对表进行[增.删.改]操作时前后的行为 注意:没有查询 一 .创建触发器 触发器基础语法: # 插入前 CREATE TRIGGER tri_before_insert_ ...
- 知识点:Mysql 基本用法之事务
事务 事务用于将某些操作的多个SQL作为原子性操作,一旦有某一个出现错误,即可回滚到原来的状态,从而保证数据库数据完整性. 事务实例: create table user( id int primar ...
- Mysql基本用法-存储引擎-04
MYSQL中只有 INNODB和BDB 类型的数据表才能支持事务处理!其他的类型是不支持的!(切记!) Mysql基本用法-存储引擎-02中的test_user表 和 phpcvs表 <?php ...
- ThinkPHP第十一天(关联模型使用,独立分组配置,MySQL concat用法)
1.关联模型的使用 定义方式:新建一个类文件UserRelationModel.class.php Class UserRelationModel extends RelationModel{ pro ...
- mysql distinct 用法详解及优化
本事例实验用表task,结构如下 MySQL> desc task; +-------------+------------+------+-----+-------------------+- ...
随机推荐
- win 8升级win8.1的几个问题
对于习惯了win7来说的小朋友,win8的使用简直有种想砸电脑的冲动啊,特别是玩游戏的小朋友,win8各种bug.对于游戏.咳咳,我只是多说了,我们都是爱学习的好孩子,少玩游戏,少撸.简单说一 ...
- db2 相关命令
db2ilist ---列出主机所有实例 db2icrt instanceName ---创建实例名为instanceName的实例 db2idrop instanceName ---删 ...
- [LintCode] A + B 问题
Bit-by-Bit summation: class Solution { public: /* * @param a: The first integer * @param b: The seco ...
- float元素一定要闭合
float:left; float:right; 一定要两个元素一起放float
- 170208、用Navicat自动备份mysql数据库
数据库备份很重要,很多服务器经常遭到黑客的恶意攻击,造成数据丢失,如果没有及时备份的话,后果不堪设想. 一:备份的目的: 做灾难恢复:对损坏的数据进行恢复和还原 需求改变:因需求改变而需要把数据还原到 ...
- CodeForces 156B Suspects(枚举)
B. Suspects time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- zTree 树形控件 ajax动态加载数据
很久没搞过树形控件了 , 再次接触看官网文档有点没懂,于是在网上找了个代码copy上,但数据是写死的,就想这在用ajax异步取出数据替换,下面是js代码 <SCRIPT type="t ...
- delphi xe学习随意记录
学习来源(根据他们的资料整理) 论坛:http://www.coder163.com(有视频) 博客:http://del.cnblogs.com/(万一的博客) 1.1.1 命名规范的概述 1 ...
- 《挑战程序设计竞赛》2.4 数据结构-并查集 POJ1182 2236 1703 AOJ2170
POJ1182 http://poj.org/problem?id=1182 题目 难得的中文题... 食物链 Time Limit: 1000MS Memory Limit: 10000K Tota ...
- mysql 中事件
# 创建存储过程 /* delimiter // create procedure test() begin update test SET name = date_format(now(),'%Y- ...