数据库操作_MySQL

Jun 01, 2016 pm 01:34 PM
create mysql 데이터베이스 작업 데이터 시트

bitsCN.com

CREATE TABLE EMP1 AS SELECT * FROM EMP WHERE EMPNO=1

SELECT * INTO NEW_TABLE FROM EMP WHERE EMPNO=1   (IF NEW_TABLE IS EXIST ) 

 

 数据表基本操作

1.create database name; //创建数据库 (create 内部命令)

  mysql>create  database  数据库名;

2.use databasename; //选择数据库 (use内部命令)

  mysql>use  数据库名;

3.drop database name; //直接删除数据库,不提醒 (drop内部命令)

  mysql>drop  database  数据库名;

4.drop table name; // 直接删除表

  mysql>drop  table  表名;

5.create table name; //创建表

  mysql>create  table  表名;

      **前提是先mysql>use数据库名;

6.show databases;//显示所有数据库

  mysql>show  databases;

7.show tables; //显示数据库中的表 (show内部命令)

  mysql>show  tables;

      **提前是先mysql>use数据库名;

8.describe tablename; //显示表的详细描述

  mysql>describe 表名;

9.select version(),current_date; //显示当前mysql版本和当前日期

  mysql>select  version(), current_date;

  mysql>select  version(),

      ->current_date;

  **select 内部命令 

10.mysql>flush privileges ; //刷新数据库

11.mysql实现修改用户密码:

 11.1 update //修改

       shell>mysql -u root -p

     mysql> update mysql.user set password=PASSWORD(’新密码’) where User='root';

     mysql> flush privileges;

     mysql> quit

 11.2 mysqladmin//修改用户密码

     shell>mysqladmin -u root password new_password

 11.3 自己测试未通过

     shell>mysql -u root -p

    mysql>SET PASSWORD FOR root=PASSWORD("root");

12.创建帐号

  mysql> grant all(delete,updatae,create,drop,insert) privileges on *.* to 用户@localhost identified  by  '密码';

13.重命名表:

  mysql > alter table  表1  rename  表2; //把表t1重命名为t2

14.备份数据库

 14.1 导出整个数据库

          mysqldump -u 用户名 -p 数据库名 > 导出的文件名

        mysqldump -u root -p asb >d:/asb.sql

 

 14.2 导出一个表

    mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

mysqldump -u root -p asb yg>d:/yg.sql

 

 14.3 导出一个数据库结构

mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:/wcnc_db.sql

// (-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table)

  mysqldump mysqladmin外部命令

 

 14.4 导入数据库

  /*用source 命令

  */进入mysql数据库控制台,先建立数据库,use数据库

  mysql -u root -p

  mysql>create  数据库名;

  mysql>use 数据库名

  mydql>source d:/数据库名.sql;

 

 14.5 导入表

 // 进入数据库,执行导入操作

      mysql>use数据库名;

      mysql>source d:/表名.sql;

15.将表中记录清空:

  mysql>delete  from 表名;

15.1将表中记录清空:

  mysql>Truncate  tablename;

16.显示表中的记录:

  mysql>select  *  from 表名;

17.一个建库和建表以及插入数据的实例

  Drop  database  if  exists  school;  //如果存在SCHOOL则删除

  create  database  school;  //建立库SCHOOL

  use  school;  //打开库SCHOOL

  create  table  teacher  //建立表TEACHER

  (

  id  int(3)  auto_increment  not  null  primary  key,

  name  char(10)  not null,

  address  varchar(50)  default  '深圳',

  year  date

  );  //建表结束

  //以下为插入字段

  insert into teacher values('','glchengang','深圳一中','1976-10-10');

  insert into teacher values('','jack','深圳一中','1975-12-23');

**注:在建表中

(1) 将ID设为长度为3的数字字段:int(3),并让它每个记录自动加一: auto_increment,

并不能为空:not null,而且让它成为主字段primary key

(2) 将NAME设为长度为10的字符字段

(3) 将ADDRESS设为长度50的字符字段,而且缺省值为深圳。varchar和char有什么区别

呢,只有等以后的文章再说了。

(4) 将YEAR设为日期字段。

如果你在mysql提示符键入上面的命令也可以,但不方便调试。 你可以将以上命令

原样写入一个文本文件中假设为school.sql,然后复制到c:下,并在DOS状态进入目录

mysqlin,然后键入以下命令:

mysql -uroot -p密码

如果成功,空出一行无任何显示;如有错误,会有提示。(以上命令已经调试,你

只要将//的注释去掉即可使用)。

将文本数据转到数据库中

 文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:

3 rose 深圳二中 1976-10-10

4 mike 深圳一中 1975-12-23

 数据传入命令load data local infile "文件名" into table 表名;

注意:你最好将文件复制到mysqlin目录下,并且要先用use命令选表所在的库。

18.revoke all on database from user

//移除user用户在database数据库上的所有权限 (自己测试未通过)

 

19.连接mysql。

格式: mysql -h主机地址 -u用户名 -p用户密码

20.登录数据库

  mysql-uroot-p;

  mysql-uroot-pnewpassword;

  mysqlmydb-uroot-p;

  mysql mydb -uroot -pnewpassword;

  mydb数据库名

21.刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,   在这里应把匿名帐户删除、root帐户设置密码,可用如下命令进行:

  mysql>use mysql;

 mysql>delete from User where User="";

 mysql>update User set Password=PASSWORD('newpassword') where User='root';

22.新增用户

  格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:

mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的MySQL数据库并对你的数据可以为所欲为了,解决办法见例2。

例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MySQL主机上的web页来访问。

mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";

如果你不想test2有密码,可以再打一个命令将密码消掉。

mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";

下面我们来看看MySQL中有关数据库方面的操作。注意:你必须首先登录到MySQL中,以下操作都是在MySQL的提示符下进行的,而且每个命令以分号结束。 

在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的提高。我们给一个应用中使用的用户赋予最恰当的数据库权限。如一个只进行数据插入的用户不应赋予其删除数据的权限。MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下:

  mysql>grant all on mydb.* to NewUserName@HostName identified by "password";

  mysql>grant usage on *.* to NewUserName@HostName identified by "password";

  mysql>grant select,insert,update on mydb.* to NewUserName@HostName identified by "password";

  mysql>grant update,delete on mydb.TestTable to NewUserName@HostName identified by "password";

23.对常用权限的解释:

   23.1 全局管理权限: 

  FILE:在MySQL服务器上读写文件。 

  PROCESS:显示或杀死属于其它用户的服务线程。 

  RELOAD:重载访问控制表,刷新日志等。 

  SHUTDOWN:关闭MySQL服务。

 23.2 数据库/数据表/数据列权限: 

  Alter:修改已存在的数据表(例如增加/删除列)和索引。 

  Create:建立新的数据库或数据表。 

  Delete:删除表的记录。 

  Drop:删除数据表或数据库。 

  INDEX:建立或删除索引。 

  Insert:增加表的记录。 

  Select:显示/搜索表的记录。 

  Update:修改表中已存在的记录。

 23.3 特别的权限: 

  ALL:允许做任何事(和root一样)。 

  USAGE:只允许登录--其它什么也不允许做。

 

最后给出在RedHat9.0下的MySql操作演示:

选用数据库的root用户登录

  [weiwen@weiwenlinux]$mysql -uroot -p

  Enterpassword:MyPassword

  mysql>create database mydb;

  QueryOK,1rowaffected(0.02sec)

  mysql>use mydb;

  Databasechanged

  mysql>create table TestTable(Idintaut_increment primary key,

  UserNamevarchar(16) not null,

  Address varchar(255));

  QueryOK,0rowsaffected(0.02sec)

  mysql>grant all on mydb.* to test@localhost identified by "test";

  QueryOK,0rowsaffected(0.01sec)

  mysql>quit

  Bye

  [weiwen@weiwenlinux]$mysqlmydb -utest -ptest

其中test.sql是用vi编辑好的SQL脚本,其内容为:

  Insert into TestTable(UserName,Address) values('Tom','shanghai');

  Insert into TestTable(UserName,Address) values('John','beijing');

  select * from TestTable;

运行已经编辑好的SQL脚本可以用source filename或.filename。

以上只是对新手的简单练习,要成为一个数据库好手,当以孜孜不倦地追求知识,不断地思考、尝试、再思考。

24.MySql常用命令总结 

 24.1 使用SHOW语句找出在服务器上当前存在什么数据库: 

  mysql>SHOW DATABASES; 

 24.2 创建一个数据库 

  mysql>Create  DATABASE  数据库名;

 24.3 选择你所创建的数据库 

  mysql>USE 数据库名;(按回车键出现Databasechanged时说明操作成功!) 

 24.4 查看现在的数据库中存在什么表 

  mysql>SHOW TABLES; 

 24.5 创建一个数据库表 

  mysql>Create  TABLE表名(name VARCHAR(20),sex CHAR(1)); 

 24.6 显示表的结构: 

  mysql>DESCRIBE 数据库名;

 24.7 往表中加入记录 

  mysql>insert  into 表名values("hyq","M"); 

 24.8 用文本方式将数据装入数据库表中(例如D:/mysql.txt) 

  mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE表名; 

 24.9 导入.sql文件命令(例如D:/mysql.sql) 

  mysql>use  database; 

  mysql>source  d:/mysql.sql; 

 24.10 删除表 

  mysql>drop  TABLE  表名; 

 24.11 清空表 

  mysql>delete  from  表名; 

 24.12 更新表中数据 

  mysql>update  表名set  sex="f"  where  name='hyq';

 

 

25. --通过伪列rowid查找重复数据

 

select a.* from t_user a where a.rowid!= 

  (select max(rowid) as rid from t_user where a.grpid =grpid and a.uname=uname);

 

delete from t_user a where a.rowid!= 

  (select max(rowid) as rid from t_user where a.grpid =grpid and a.uname=uname);

 

26. 当表中有重复数据(所有字段相同)时,去重:

select distinct * from  表名;

 

27. 根据字段查询表中重复的数据(单一字段):

    select * from表名where 字段名 in (select字段名   from  表名 group by 字段名 having  count(字段名) > 1);

 

28: 删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录
       delete from 表名where 字段名  in(select  字段名   from 表名  group   by  字段名   having  count(字段名)> 1)
and rowid not in(select min(rowid) from   表名  group by字段名  having count(字段名)>1);

29:根据字段查表里面重复的多字段数据,并显示重复次数:

    Select 字段名1,字段名2,Count(*)From 表名Group By 字段名1,字段名2 HavingCount(*) > 1

30. 指定查询表中前N行数据:

    select * from表名limit  N;

31.指定查询表中第N行后的M行数据:

    select *from 表名 limit N,M;

32. 复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表;

33. 只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
或CREATE TABLE 新表 LIKE 旧表;

34. 1、复制表结构及数据到新表
CREATE TABLE 新表 SELECT * FROM 旧表
这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。
不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。


2、只复制表结构到新表
CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
或CREATE TABLE 新表  LIKE 旧表


3、复制旧表的数据到新表(假设两个表结构一样)
INSERT INTO 新表 SELECT * FROM 旧表


4、复制旧表的数据到新表(假设两个表结构不一样)
INSERT INTO 新表(字段1,字段2,.......) SELECT 字段1,字段2,...... FROM 旧表


5、可以将表1结构复制到表2
SELECT * INTO 表2 FROM 表1 WHERE1=2


6、可以将表1内容全部复制到表2
SELECT * INTO 表2 FROM 表1


7、show create table 旧表;
这样会将旧表的创建命令列出。我们只需要将该命令拷贝出来,更改table的名字,就可以建立一个完全一样的表


8、mysqldump
用mysqldump将表dump出来,改名字后再导回去或者直接在命令行中运行

35. 把时间更新成为当前系统时间

Update 表名set 时间字段=now();

 

bitsCN.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

LARAVEL 소개 예 LARAVEL 소개 예 Apr 18, 2025 pm 12:45 PM

Laravel은 웹 응용 프로그램을 쉽게 구축하기위한 PHP 프레임 워크입니다. 설치 : Composer를 사용하여 전 세계적으로 Laravel CLI를 설치하고 프로젝트 디렉토리에서 응용 프로그램을 작성하는 등 다양한 기능을 제공합니다. 라우팅 : Routes/Web.php에서 URL과 핸들러 간의 관계를 정의하십시오. 보기 : 리소스/뷰에서보기를 작성하여 응용 프로그램의 인터페이스를 렌더링합니다. 데이터베이스 통합 : MySQL과 같은 데이터베이스와 상자 외 통합을 제공하고 마이그레이션을 사용하여 테이블을 작성하고 수정합니다. 모델 및 컨트롤러 : 모델은 데이터베이스 엔티티를 나타내고 컨트롤러는 HTTP 요청을 처리합니다.

MySQL 및 Phpmyadmin : 핵심 기능 및 기능 MySQL 및 Phpmyadmin : 핵심 기능 및 기능 Apr 22, 2025 am 12:12 AM

MySQL 및 Phpmyadmin은 강력한 데이터베이스 관리 도구입니다. 1) MySQL은 데이터베이스 및 테이블을 작성하고 DML 및 SQL 쿼리를 실행하는 데 사용됩니다. 2) PHPMYADMIN은 데이터베이스 관리, 테이블 구조 관리, 데이터 운영 및 사용자 권한 관리에 직관적 인 인터페이스를 제공합니다.

MySQL 대 기타 프로그래밍 언어 : 비교 MySQL 대 기타 프로그래밍 언어 : 비교 Apr 19, 2025 am 12:22 AM

다른 프로그래밍 언어와 비교할 때 MySQL은 주로 데이터를 저장하고 관리하는 데 사용되는 반면 Python, Java 및 C와 같은 다른 언어는 논리적 처리 및 응용 프로그램 개발에 사용됩니다. MySQL은 데이터 관리 요구에 적합한 고성능, 확장 성 및 크로스 플랫폼 지원으로 유명하며 다른 언어는 데이터 분석, 엔터프라이즈 애플리케이션 및 시스템 프로그래밍과 같은 해당 분야에서 이점이 있습니다.

데이터베이스 연결 문제 해결 : Minii/DB 라이브러리 사용 실질적인 사례 데이터베이스 연결 문제 해결 : Minii/DB 라이브러리 사용 실질적인 사례 Apr 18, 2025 am 07:09 AM

작은 응용 프로그램을 개발할 때 까다로운 문제가 발생했습니다. 가벼운 데이터베이스 운영 라이브러리를 신속하게 통합해야합니다. 여러 라이브러리를 시도한 후에는 기능이 너무 많거나 호환되지 않는다는 것을 알았습니다. 결국, 나는 내 문제를 완벽하게 해결하는 YII2를 기반으로 단순화 된 버전 인 Minii/DB를 발견했습니다.

Laravel 프레임 워크 설치 방법 Laravel 프레임 워크 설치 방법 Apr 18, 2025 pm 12:54 PM

기사 요약 :이 기사는 Laravel 프레임 워크를 쉽게 설치하는 방법에 대한 독자들을 안내하기위한 자세한 단계별 지침을 제공합니다. Laravel은 웹 애플리케이션의 개발 프로세스를 가속화하는 강력한 PHP 프레임 워크입니다. 이 자습서는 시스템 요구 사항에서 데이터베이스 구성 및 라우팅 설정에 이르기까지 설치 프로세스를 다룹니다. 이러한 단계를 수행함으로써 독자들은 라벨 프로젝트를위한 탄탄한 토대를 빠르고 효율적으로 놓을 수 있습니다.

MySQL 모드 해결 문제 : theliamysqlmodeschecker 모듈 사용 경험 MySQL 모드 해결 문제 : theliamysqlmodeschecker 모듈 사용 경험 Apr 18, 2025 am 08:42 AM

Thelia를 사용하여 전자 상거래 웹 사이트를 개발할 때 까다로운 문제가 발생했습니다. MySQL 모드가 제대로 설정되지 않아 일부 기능이 제대로 작동하지 않습니다. 약간의 탐색 후, 나는 theliamysqlmodeschecker라는 모듈을 발견했습니다.이 모듈은 Thelia가 요구하는 MySQL 패턴을 자동으로 수정하여 내 문제를 완전히 해결할 수 있습니다.

MySQL에서 외국 키의 목적을 설명하십시오. MySQL에서 외국 키의 목적을 설명하십시오. Apr 25, 2025 am 12:17 AM

MySQL에서 외국 키의 기능은 테이블 간의 관계를 설정하고 데이터의 일관성과 무결성을 보장하는 것입니다. 외국 키는 참조 무결성 검사 및 계단식 작업을 통해 데이터의 효과를 유지합니다. 성능 최적화에주의를 기울이고 사용할 때 일반적인 오류를 피하십시오.

MySQL 및 Mariadb를 비교하고 대조하십시오. MySQL 및 Mariadb를 비교하고 대조하십시오. Apr 26, 2025 am 12:08 AM

MySQL과 Mariadb의 주요 차이점은 성능, 기능 및 라이센스입니다. 1. MySQL은 Oracle에 의해 개발되었으며 Mariadb는 포크입니다. 2. MariaDB는 높은 하중 환경에서 더 나은 성능을 발휘할 수 있습니다. 3. Mariadb는 더 많은 스토리지 엔진과 기능을 제공합니다. 4.MySQL은 듀얼 라이센스를 채택하고 MariaDB는 완전히 오픈 소스입니다. 선택할 때 기존 인프라, 성능 요구 사항, 기능 요구 사항 및 라이센스 비용을 고려해야합니다.

See all articles