Java学习十九
今天下载了数据库页面操作软件SQLyog,学习了数据库中的DML和部分DQL知识,由于最近时间比较紧张所以就不上传我的操作截图了,之后联系了Java字符串和几个Java数组实例。
一、SQLyog下载
这个软件的下载直接在官网下载即可,我下载的是社区版,我认为学生使用足够了,如果下载旗舰版需要自己找注册码。使用这个软件需要提前打开mysql(如果数据库不是自启的),在cmd窗口输入 net start 数据库名称
官网:https://sqlyog.en.softonic.com/
二、DML和DQL学习
DML:增删改表中的数据
1、添加数据:insert into 表名(列名1,...列名n) values(值1,....值n);
注:(1)表名之后不定义列名,默认给所有列添加值。 insert into 表名 values(值1,...值n);
(2)列名和值一一对应。
(3)除了数字类型,其他类型用引号(单双均可)
2、删除数据:delete from 表名 where 条件; 例:delete from stu where id=1;
注:(1)不加条件,删除表中所有记录。
(2)删除所有记录
①delete from 表名; 执行次数多,效率低
②truncate table 表名; 效率高,同时会创建一个相同的表。
3、修改数据
update 表名 set 列名1=值1,列名2=值2,...where 条件;
注:不加任何条件,全部记录均会被修改
DQL查询表中记录 select *from 表名;
1、基础查询
(1)多个字段查询:select 字段1,字段2,...from 表名; 注:所有字段可以用*代替。
(2)去除重复:distinct
(3)起别名:as(可省略)
2、条件查询
(1)where 子句后跟条件 select * from stu where age>20;
(2)运算符:①>,<,<=,>=,=,<>
②between ...and
③in(集合)
④like
⑤is null 为空
⑥and/&&
⑦or/||
⑧not/!
like:模糊查询 占位符:— :代表单个字符;%:代表任意字符
例:select * from stu where name "___"
三、实例练习
1、
1 package _Java字符串; 2 3 import java.util.Locale; 4 5 /* 6 字符串格式化 7 通过 format() 方法来格式化字符串,还可以指定地区来格式化 8 */ 9 public class StringFormat { 10 public static void main(String[] args) { 11 double e=Math.E;//使用数学中的e=2.7.. 12 System.out.format("%f%n",e); 13 System.out.format(Locale.CHINA,"%-10.4f%n%n",e);//指定本地为中国 14 } 15 /* 16 format(String format, Objece... argues)函数相当于C语言中的printf函数,可以指定输出 17 18 19 */ 20 }
2、
1 package _Java字符串; 2 /* 3 字符串优化 4 通过 String.intern() 方法来优化字符串 5 */ 6 public class StringOptimization { 7 public static void main(String[] args) { 8 String var[]=new String[50000]; 9 for(int i=0;i<50000;i++){ 10 var[i]="s"+i; 11 } 12 long start_time=System.currentTimeMillis(); 13 for(int i=0;i<50000;i++){ 14 var[i]="hello"; 15 } 16 long end_time=System.currentTimeMillis(); 17 System.out.println("直接使用字符串:"+(end_time-start_time)+"毫秒"); 18 long start_time1=System.currentTimeMillis(); 19 for(int i=0;i<50000;i++){ 20 var[i]=new String("hello"); 21 } 22 long end_time1=System.currentTimeMillis(); 23 System.out.println("使用new关键字:"+(end_time1-start_time1)+"毫秒"); 24 long start_time2=System.currentTimeMillis(); 25 for(int i=0;i<50000;i++){ 26 var[i]=new String("hello"); 27 var[i]=var[i].intern(); 28 } 29 long end_time2=System.currentTimeMillis(); 30 System.out.println("使用intern方法:"+(end_time2-start_time2)+"毫秒"); 31 } 32 33 //intern()返回字符串规范化的表现形式 34 }
3、
1 package _Java字符串; 2 /* 3 连接字符串 4 通过 "+" 操作符和StringBuffer.append() 方法来连接字符串,并比较其性能 5 */ 6 public class StringConect { 7 public static void main(String[] args) { 8 long start_time=System.currentTimeMillis(); 9 for(int i=0;i<50000;i++){ 10 String s1="this is"+"testing the"+"difference between"+"String and StringBuffer"; 11 } 12 long end_time=System.currentTimeMillis(); 13 System.out.println("使用+连接字符串:"+(end_time-start_time)+"毫秒"); 14 long start_time1=System.currentTimeMillis(); 15 for(int i=0;i<50000;i++){ 16 StringBuffer s2=new StringBuffer(); 17 s2.append("this is"); 18 s2.append("testing the"); 19 s2.append("difference between"); 20 s2.append("String and StringBuffer"); 21 } 22 long end_time1=System.currentTimeMillis(); 23 System.out.println("使用append()连接:"+(end_time1-start_time1)+"毫秒"); 24 } 25 /* 26 字符串中使用+连接,每次都会创建一个新对象,效率低,通常使用StringBuffer().append()方法连接 27 */ 28 }
4、
1 package Java数组; 2 3 import java.util.Arrays; 4 5 /* 6 数组排序及元素查找 7 使用sort()方法对Java数组进行排序,及如何使用 binarySearch() 方法来查找数组中的元素, 这边我们定义了 printArray() 方法来打印数组 8 */ 9 public class _1arrayArranageandSearch { 10 public static void main(String[] args) { 11 int array[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 }; 12 Arrays.sort(array); 13 printArray("数组排序结果",array); 14 int index=Arrays.binarySearch(array,2); 15 System.out.println("元素2在"+index+"位置"); 16 } 17 public static void printArray(String message,int array[]){ 18 System.out.println(message+":(length:"+array.length+")"); 19 for(int i=0;i< array.length;i++){ 20 if(i!=0){ 21 System.out.print(", "); 22 } 23 System.out.print(array[i]); 24 } 25 System.out.println(); 26 } 27 /* 28 sort()方法排序低位优先 29 binarySearch(List list, T key):使用二分搜索法搜索指定列表,第一个参数是列表,第二个参数是要查找的元素,返回的是要查找的元素的索引 30 */ 31 }
5、
1 package Java数组; 2 3 import java.util.Arrays; 4 5 /* 6 数组添加元素 7 使用sort()方法对Java数组进行排序,及如何使用 insertElement () 方法向数组插入元素, 这边我们定义了 printArray() 方法来打印数组 8 */ 9 public class _2StringAdd { 10 public static void main(String[] args) { 11 int array[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 }; 12 Arrays.sort(array); 13 printArray("数组排序", array); 14 int index = Arrays.binarySearch(array, 1); 15 System.out.println("元素 1 所在位置(负数为不存在):" + index); 16 int newIndex = -index - 1; 17 array = insertElement(array, 1, newIndex); 18 printArray("数组添加元素 1", array); 19 } 20 public static void printArray(String message,int array[]){ 21 System.out.println(message+":(length:"+array.length+")"); 22 for(int i=0;i< array.length;i++){ 23 if(i!=0){ 24 System.out.print(", "); 25 } 26 System.out.print(array[i]); 27 } 28 System.out.println(); 29 } 30 31 private static int[] insertElement(int original[],int element,int index){ 32 int leng=original.length; 33 int destination[]=new int[leng+1]; 34 System.arraycopy(original,0,destination,0,index); 35 destination[index]=element; 36 System.arraycopy(original,index,destination,index+1,leng-index); 37 return destination; 38 } 39 //System.arraycopy(源数组,源数组起始位置,目的数组,目的数组起始位置,复制长度); 40 41 }
6、
1 package Java数组; 2 /* 3 获取数组长度 4 使用数组的属性 length 来获取数组的长度 5 */ 6 public class _3StringGetLength { 7 public static void main(String[] args) { 8 String[][] data=new String[2][5]; 9 System.out.println("第一维数组长度:"+data.length); 10 System.out.println("第二维数组长度:"+data[0].length); 11 } 12 }
7、
1 package Java数组; 2 /* 3 数组反转 4 使用自定义的 reverse 方法将数组进行反转: 5 */ 6 public class _4arrayRunoob { 7 public static void main(String[] args) { 8 int [] arr = {10, 20, 30, 40, 50}; 9 reverse(arr, arr.length); 10 } 11 public static void reverse(int a[],int n){ 12 int[] b=new int[n]; 13 int j=n; 14 for(int i=0;i<n;i++){ 15 b[j-1]=a[i]; 16 j=j-1; 17 } 18 System.out.println("反转数组:"); 19 for(int k=0;k<n;k++){ 20 System.out.print(b[k]+" "); 21 } 22 } 23 }